Cài đặt Oracle Database 12c trên CentOS 7

1. Sự khác nhau giữa Oracle 11 và 12??

Ở Oracle 11 trở về trước chúng ta không nhắc đến khái niệm CDB và PDB, là bởi vì khi chúng ta có 02 applications thì chúng ta sẽ phải tạo ra 02 databases khác nhau. 02 databases đó với tập thiết lập cấu hình khác nhau – 02 oracle instances, từ đó tốn thêm lượng tài nguyên CPU và memory.

Với Oracle 12c, thay vì một cơ sở dữ liệu vật lý cho mỗi lược đồ , chúng ta có thể có một cơ sở dữ liệu ảo cho mỗi lược đồ. Mỗi cơ sở dữ liệu ảo hoạt động giống như một cơ sở dữ liệu độc lập; cơ sở dữ liệu vật lý có thể được ẩn từ end users. Các cơ sở dữ liệu ảo này được gọi là Containers. Cơ sở dữ liệu vật lý chứa các containers đó và được biết đến như một Cơ sở dữ liệu Container (CDB). Chúng ta có thể kéo ra hoặc lấy về một container từ CDB này vào CDB khác. Đây là lý do tại sao một container cũng được biết đến như một cơ sở dữ liệu Pluggable (PDB).

Oracle 12C

2. Cài đặt và cấu hình điều kiện

Bài viết cài đặt và cấu hình Oracle database 12c trên CentOS 7 ở chế độ dòng lệnh: dbca-silent-mode

Cấu hình server với:

– Hostname: db01.example.local

– IP: 192.168.10.100

2.1 Download phần mềm

Download bản Oracle Enterprise Edition at: OTN: Oracle Database 12c Release 2 (12.2.0.1) Software (64-bit)

Nếu sử dụng bản “Oracle Software Delivery Cloud” thì truy cập và download tại: https://edelivery.oracle.com/osdc/faces/SoftwareDelivery

cd /software
unzip linuxx64_12201_database.zip
ls /software/database

2.2 Cài đặt các gói yêu cầu

Thiết lập hostname

echo "hostname=db01.example.local" >> /etc/sysconfig/network
echo "192.168.10.100 db01.example.local" >>/etc/hosts
echo "db01.example.local" >/etc/hostname

– Cài đặt các packages cần thiết

yum install binutils compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make nfs-utils smartmontools net-tools sysstat

3. Tạo user và groups Oracle

– Tạo group cho quản trị DB

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
groupadd -g 54330 racdba

– Tạo oracle user và thêm đến các groups

useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle

– Đổi mật khẩu oracle

[root@example ~]#passwd oracle
New password:Oracle12c
BAD PASSWORD: The password contains the user name in some form
Retype new password:Oracle12c
passwd: all authentication tokens updated successfully.

4. Các yêu cầu cho cài đặt Oracle

a.  Thêm các tham số kernel vào /etc/sysctl.conf

echo "fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
kernel.panic_on_oops=1" >/etc/sysctl.conf

– Cập nhật các tham số kernel

/sbin/sysctl -p

b. Thiết lập shell limit cho oracle user

Thêm các dòng sau vào tệp tin /etc/security/limits.conf

[root@example ~]#echo "oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728" >>/etc/security/limits.conf

c. Tạo thư mục cho cài đặt Oracle

mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

d. Thiết lập environment cho oracle user

–  Tạo “scripts” directory để chứa các tệp tin thiết lập 

mkdir /home/oracle/scripts

– Tạo tệp “setEnv.sh” cho environment

( Nếu không tạo tệp tin chứa thông tin về environment, chúng ta có thể thêm các biến môi trường vào trực tiếp tệp tin .bash_profile của oracle user)

cat > /home/oracle/scripts/setEnv.sh <<EOF
# Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=db01.example.local
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=orcl
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF

– Tham chiếu tệp tin “setEnv.sh” vào “/home/oracle/.bash_profile”

echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile

e. Script để start/stop service

Chúng ta tạo tệp tin “start_all.sh” & “stop_all.sh” để có thể gọi start/shutdown service cho thao tác nhanh hơn.

cat > /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbstart \$ORACLE_HOME
EOF
cat > /home/oracle/scripts/stop_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh
export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES
dbshut \$ORACLE_HOME
EOF

Thay đổi quyền cho oracle đối với các scripts

chown -R oracle.oinstall /home/oracle/scripts
chmod u+x /home/oracle/scripts/*.sh

Sau khi cài đặt Oracle database hoàn thành, thêm nội dung sau vào tệp tin tin /etc/oratab

~/scripts/start_all.sh
~/scripts/stop_all.sh

f. Tệp tin response

Tệp tin response được sử dụng để cài đặt Oracle database với silient mode. Các tệp tin responses lưu thông tin các tham số để cài các thành phần của Oracle DB trong silent mode

– db_install.rsp: Được sử dụng để cài oracle binaries; cài đặt hoặc nâng cấp database

– dbca.rsp:  Được sử dụng để cài đặt, cấu hình hoặc xóa một database

– netca.rsp: Được sử dụng để cấu hình network cho Oracle database

Các tệp tin responses (dbca.rsp db_install.rsp netca.rsp) nằm trong thư mục ../database/response của bộ cài Oracle DB

5. Cài đặt Oracle

– Chuyển bộ cài đặt sang quyền của oracle user

[root@example ~]
cd /software #vào thưc mục bộ cài oracle
mv database /home/oracle/ #Chuyển bộ cài đặt sang thư mục của oracle user
chown -R oracle:oinstall /home/oracle/database

– Thực hiện các cài đặt trên oracle user

su – oracle

– Tạo hoặc sử đổi tệp tin db_install.rsp cho cài đặt Oracle

Tùy thuộc vào vị trí cài đặt người dùng lựa chọn hoặc hostname, và một số tham số khác mà thay đổi tệp tin db_install.rsp cho phù hợp.

cd /home/oracle/database/response/
echo "oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
ORACLE_BASE=/home/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.isRACOneInstall=false
oracle.install.db.rac.serverpoolCardinality=0
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.managementOption=DEFAULT
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true" >db_install.rsp

Xem thêm các nội dung về tạo db_install.rsp tại https://oracle-base.com/articles/12c/images/ol7-122-rac/db_install.rsp

– Thực hiện quá trình cài đặt

cd /home/oracle/database
./runInstaller -silent -showProgress -responseFile /home/oracle/database/response/db_install.rsp

Quá trình diễn ra như bên dưới là đã cài đặt thành công

You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2017-12-21_07-58-54AM.log
Prepare in progress.
.................................................. 8% Done.
Prepare successful.
Copy files in progress.
.................................................. 17% Done.
.................................................. 22% Done.
.................................................. 27% Done.
.................................................. 32% Done.
.................................................. 40% Done.
.................................................. 45% Done.
.................................................. 50% Done.
.................................................. 55% Done.
.................................................. 60% Done.
.................................................. 65% Done.
.................................................. 70% Done.
.................................................. 75% Done.
.................................................. 80% Done.
....................
Copy files successful.
Link binaries in progress.
..........
Link binaries successful.
Setup files in progress.
..............................
Setup files successful.
Setup Inventory in progress.
Setup Inventory successful.
Finish Setup successful.
The installation of Oracle Database 12c was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2017-12-21_07-58-54AM.log' for more details.
Setup Oracle Base in progress.
Setup Oracle Base successful.
.................................................. 95% Done.
As a root user, execute the following script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh
.................................................. 100% Done.
Successfully Setup Software.

 

Sau khi hoàn thành cài đặt, chạy 2 script sau:

[root@example ~]#
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.2.0.1/db_1/root.sh

 

– Login Oracle với oracle user

[root@example ~]#su - oracle
$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Dec 21 08:16:55 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to an idle instance.
SQL>

 

6. Cấu hình Oracle Net

Mặc định Oracle đang chạy ở port 1521, chúng ta có đổi port tùy thuộc vào yêu cầu

$vim /home/oracle/database/response/netca.rsp

– Chạy netca để thực hiện cấu hình network

$netca -silent -responseFile /home/oracle/database/response/netca.rsp

– Kiểm tra trạng thái của LISTENER

$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 – Production on 21-DEC-2017 08:25:24

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db01.example.local)(PORT=1521)))

STATUS of the LISTENER

————————

Alias LISTENER

Version TNSLSNR for Linux: Version 12.2.0.1.0 – Production

Start Date 21-DEC-2017 08:23:43

Uptime 0 days 0 hr. 1 min. 41 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/12.2.0.1/db_1/network/admin/listener.ora

Listener Log File /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml

Listening Endpoints Summary…

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.10.100)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

7. Cấu hình database

Chúng ta sẽ tạo mới một container database “ORCL.example.local”, một pluggable database “porcl/” = “pluggable orcl”

– Tạo thư mục cho datafiles và flash recovery area

$mkdir /u01/app/oracle/oradata
$mkdir /u01/app/oracle/flash_recovery_area

– Thay đổi một số nội dung trong tệp tin dbca.rsp với các giá trị sau:

$vi dbca.rsp
gdbName=orcl.example.local
sid=orcl
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=PORCL
pdbAdminPassword=Oracle12c
templateName=General_Purpose.dbc
sysPassword=Oracle12c
systemPassword=Oracle12c
emConfiguration=DBEXPRESS
emExpressPort=5500
dbsnmpPassword=Oracle12c
datafileDestination=/u01/app/oracle/oradata
recoveryAreaDestination=/u01/app/oracle/flash_recovery_area
storageType=FS
#characterSet=AL32UTF8
#nationalCharacterSet=AL16UTF16
listeners=LISTENER
sampleSchema=true
databaseType=OLTP
automaticMemoryManagement=TRUE
totalMemory=2048

– Chạy cài đặt database

$dbca -silent -createDatabase -responseFile /home/oracle/database/response/dbca.rsp

Copying database files

1% complete

13% complete

25% complete

Creating and starting Oracle instance

26% complete

30% complete

31% complete

35% complete

38% complete

39% complete

41% complete

Completing Database Creation

42% complete

43% complete

44% complete

46% complete

49% complete

50% complete

Creating Pluggable Databases

55% complete

75% complete

Executing Post Configuration Actions

100% complete

Look at the log file “/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log” for further details.

– Kiểm tra kết nối database

[oracle@example ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Dec 21 09:47:35 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string orcl

– Check port status of db expressin root database

[oracle@oracle ~]$ sqlplus / as sysdba
SQL> select DBMS_XDB_CONFIG.GETHTTPSPORT
from dual;
GETHTTPSPORT
------------
5500

– Thiết lập database khởi động cùng hệ thống ( sử dụng tiện ích dbstart)

Thêm nội dung sau vào tệp tin “/etc/oratab” để thiết lập flag restart ORCL với ‘Y’.

orcl:/u01/app/oracle/product/12.2.0.1/db_1:Y

Thêm nội dung sau vào /etc/oratab để start/stop database with scripts

$echo "~/scripts/start_all.sh
~/scripts/stop_all.sh >>/etc/oratab

8. NOTE

1. getting the errors ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist.

The ORA-01034 is simple error, it means that your database is down! Oracle oerr utility notes this about the ORA-01034 error:

ORA-01034: ORACLE not available

The ORA-01034 error can sometimes be fixed by setting the ORACLE_SID environment variable:

$ORACLE_SID=xxx

$export ORACLE_SID

$sqlplus sys/manager@xxx as sysdba

SQL> startup

Có thể sử dụng bash script cho cài đặt Oracle12c trên CentOS 7:   https://github.com/keepwalking86/oracle12c

Tham khảo tại: http://dbaora.com/install-oracle-in-silent-mode-12c-release-2-12-2-on-oel7/

 

Advertisements

One thought on “Cài đặt Oracle Database 12c trên CentOS 7

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s