最近要做一個用ogg實現oracle到kafka的增量數據實時同步,但是Oracle就讓我裝了好久,這里來記錄一下安裝oracle過程。
1.建立swap分區
- 創建充當swap分區的文件,文件大小就是要增加的swap大小,of是文件位置,bs為單位,count為設置的大小2048*1024
dd if=/dev/zero of=/home/swap bs=1024 count=2097152
- 格式化交換分區文件
mkswap /home/swap
- 給分區文件設置下權限:0600
chmod 0600 /home/swap
- 啟動交換分區文件
swapon /home/swap
- !!!如果提示設備或資源忙,先執行
swapoff /home/swap
- 然后設置開機自啟,編輯
/etc/fstab
追加:/home/swap swap swap defaults 0 0
2、創建用戶和用戶組
- 創建用戶組oinstall
groupadd oinstall
- 創建用戶組dba
groupadd dba
- 創建oracle用戶,并加入到oinstall和dba用戶組
useradd -g oinstall -G dba -m oracle
- 查詢用戶組是否授權成功
groups oracle
- 設置用戶oracle的登陸密碼
passwd oracle
- 查看新建的oracle用戶
id oracle
3、創建安裝目錄和權限
- oracle數據庫安裝目錄
mkdir -p /data/oracle
- oracle數據庫配置文件目錄
mkdir -p /data/oraInventory
- oracle數據庫軟件包解壓目錄
mkdir -p /data/database
- 創建完畢檢查一下
cd /data
,ll
- 設置目錄所有者為oinstall用戶組的oracle用戶
chown -R oracle:oinstall /data/oracle
chown -R oracle:oinstall /data/oraInventory
chown -R oracle:oinstall /data/database
4、關閉selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
- 使修改立即生效
setenforce 0
5、修改OS系統標識
vi /etc/redhat-release
- 注釋或刪除掉第一行添加
redhat-7
6.修改內核參數
vi /etc/sysctl.conf
增加如下內容:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
#設置最大打開文件數
fs.file-max = 6815744
fs.aio-max-nr = 1048576
#共享內存的總量,8G內存設置:2097152*4k/1024/1024
kernel.shmall = 2097152
#最大共享內存的段大小
kernel.shmmax = 2147483648
#整個系統共享內存端的最大數
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#可使用的IPv4端口范圍
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
sysctl -p
文件生效
7、限制oracle用戶的shell權限
vi /etc/security/limits.conf
增加如下內容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
8、安裝rpm包
- 使用
yum -y install
命令安裝
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel libXtst sysstat ksh make libXi compat-libcap1
rpm -qa | grep *
可以檢測是否安裝成功
9、配置oracle用戶的環境變量
vi /home/oracle/.bash_profile
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#oracle啟動數據庫實例名
export ORACLE_SID=orcl11g
#添加系統環境變量
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
source /home/oracle/.bash_profile
10、上傳和解壓兩個安裝文件到對應的文件夾下
unzip /opt/soft/linux.x64_11gR2_database_1of2.zip -d /data/database/
unzip /opt/soft/linux.x64_11gR2_database_2of2.zip -d /data/database/
11、修改主機名字
vi /etc/cloud/cloud.cfg
將preserve_hostname: false修改為preserve_hostname: true
hostnamectl set-hostname 主機名
reboot重啟系統生效
12、修改安裝配置信息
- 編輯數據庫安裝文件db_install.rsp
vim /data/database/database/db_install.rsp
20 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
29 oracle.install.option=INSTALL_DB_SWONLY #安裝類型
37 ORACLE_HOSTNAME=Carlota #主機名稱,填自己的
42 UNIX_GROUP_NAME=oinstall #安裝組
47 INVENTORY_LOCATION=/opt/oracle/inventory #INVENTORY目錄
78 SELECTED_LANGUAGES=en,zh_CN #選擇語言
83 ORACLE_HOME=/opt/oracle/product/112010/db_1 #oracle_home
88 ORACLE_BASE=/opt/oracle #oracle_base
99 oracle.install.db.InstallEdition=EE ##oracle版本
108 oracle.install.db.isCustomInstall=true
142 oracle.install.db.DBA_GROUP=dba #dba用戶組
147 oracle.install.db.OPER_GROUP=dba #oper用戶組
160 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #數據庫類型
165 oracle.install.db.config.starterdb.globalDBName=orcl #globalDBName
170 oracle.install.db.config.starterdb.SID=orcl #SID
200 oracle.install.db.config.starterdb.memoryLimit=800 #自動管理內存的最小內存(M)
233 oracle.install.db.config.starterdb.password.ALL=oracle #設定所有數據庫用戶使用同一個密碼
385 DECLINE_SECURITY_UPDATES=true #設置安全更新
- 嫌麻煩也可以直接用我這里現成的,db_install.rsp,替換掉原文件即可
13、進行安裝
- 切換為oracle執行以下安裝操作
su - oracle
cd /data/database/database
./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /data/database/database/response/db_install.rsp
14、使用root用戶運行
su - root
/data/oraInventory/orainstRoot.sh
/data/oracle/product/11.2.0/db_1/root.sh
15.配置tnsnames.ora
vim /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
新增內容如下(注意修改主機名稱):
alioracle =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 主機名稱hostname)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) )
)
16、建庫
cd /data/oracle/product/11.2.0/db_1/bin
./dbca -silent -responseFile /data/database/database/response/dbca.rsp
- 輸入oracle用的 用戶名和密碼
17、配置listener.ora
vim /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
新增如下內容(注意修改主機名稱):
LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=主機名稱hostname)(PORT=1521)) )
)SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=orcl) (SID_NAME=orcl11g) (ORACLE_HOME=/data/oracle/product/11.2.0/db_1)(PRESPAWN_MAX=20) (PRESPAWN_LIST= (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))))
)
18、控制臺,找到安全組,去添加1521端口的配置規則,否則用公網ip連接不到oracle數據庫,這一步很關鍵,否則無法用公網ip遠程連接。
19、接下來用sqlplus去創建用戶的id以及分配權限
-
create user product identified by product;
-
grant connect, resource to product;
-
grant select on V_$session to product;
-
grant select on V_$sesstat to product;
-
grant select on V_$statname to product;
20、oracle實例的啟動和啟動監聽
su - oracle
#切換到oracle用戶lsnrctl start
#啟動lsnrctl stop
#停止lsnrctl status
#查看listener的狀態sqlplus "/as sysdba"
#以sysdba的身份登陸
21、可以使用遠程工具連接*