Chủ Nhật, 29 tháng 11, 2020

Quản lý Control Files trong Oracle Database từ A-Z

1. KIỂM TRA
Các view:

V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER

SELECT NAME FROM V$CONTROLFILE;
SELECT value  FROM v$parameter WHERE name =’control_files’;
2. TẠO CONTROLFILE
STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "demo" NORESETLOGS NOARCHIVELOG
    MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXDATAFILES 32
    MAXINSTANCES 1
    MAXLOGHISTORY 449
LOGFILE
  GROUP 1 '/path/oracle/dbs/t_log1.f'  SIZE 500K,
  GROUP 2 '/path/oracle/dbs/t_log2.f'  SIZE 500K
# STANDBY LOGFILE
DATAFILE
  '/path/oracle/dbs/t_db1.f',
  '/path/oracle/dbs/dbu19i.dbf',
  '/path/oracle/dbs/tbs_11.f',
  '/path/oracle/dbs/smundo.dbf',
  '/path/oracle/dbs/demo.dbf'
CHARACTER SET WE8DEC;

3. BỔ SUNG 3 CONTROL FILE VỚI FILE SYSTEM

--Kiểm tra thông tin
--Lấy thông tin hiện tại của database
select name from v$controlfile;

    NAME
-----------------------------------------------------------
/u12/oracle/oradata/DBAViet/control01.ctl


-- Kiểm tra thư mục dự kiến tạo control file đã có chưa và tạo nếu chưa tồn tại
mkdir -p /u13/oracle/oradata/DBAViet
mkdir -p /u14/oracle/oradata/DBAViet
   
--Thiết lập thông tin control file mới
alter system set control_files ='/u12/oracle/oradata/DBAViet/control01.ctl', '/u13/oracle/oradata/DBAViet/control02.ctl', '/u14/oracle/oradata/DBAViet/control03.ctl' 
scope=spfile sid='*';

--Tắt database
srvctl stop database -d prepaid -o immediate

-- Copy control file sang đường dẫn mới
cp /u12/oracle/oradata/DBAViet/control01.ctl /u12/oracle/oradata/DBAViet/control01.ctl;
cp /u12/oracle/oradata/DBAViet/control01.ctl /u13/oracle/oradata/DBAViet/control01.ctl;
cp /u12/oracle/oradata/DBAViet/control01.ctl /u14/oracle/oradata/DBAViet/control01.ctl;

-- Bật database 
srvctl start database -d DBAViet

--Kiểm tra lại: Đảm bảo đã nhận được đường dẫn mới /u02
select name from v$controlfile;
$ lsnrctl status

4. BỔ SUNG 2 CONTROL FILE VỚI ASM

Mục đích: Bổ sung thêm để đảm bảo >=2 control file trong ASM

Các bước thực hiện:

1. Backup spfile

  • sqlplus '/ as sysdba'
  • SQL> create pfile='/tmp/spfileBACKUP.ora' from spfile;

2. Cập nhật tham số control_file parameter trong spfile.

  • sqlplus '/ as sysdba'
  • SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
+DATA01/MYDB/controlfile/current.200.899418013

  • SQL> alter system set control_files='+DATA01/MYDB/controlfile/current.200.899418013','+FRA01' scope=spfile sid='*';

3. Khởi động lại database ở chế độ nomount

  • sqlplus '/ as sysdba'
  • SQL> shutdown immediate; -- thực hiện trên 2 node
  • SQL> startup nomount;  -- thực hiện trên 1 node

4. Tạo control file mới dùng RMAN.

  • rman
  • RMAN> connect target /
  • RMAN> restore controlfile from '+DATA1/MYDB/controlfile/current.200.899418013';

Starting restore at 09-NOV-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=111 instance=MYDB devtype=DISK

channel ORA_DISK_1: copied control file copy
output filename=+DATA1/MYDB/controlfile/current.200.899418013
output filename=+FRA01/MYDB/controlfile/current.200.800418013
Finished restore at 09-NOV-12

5. Cập nhật spfile với tên control file mới

  • sqlplus '/ as sysdba'
  • SQL> alter system set control_files='+DATA01/MYDB/controlfile/current.200.899418013','+FRA01/MYDB/controlfile/current.200.800418013' scope=spfile sid='*';

6. Restart database và kiểm tra control file mới

  • sqlplus '/ as sysdba'
  • SQL> shutdown immediate;
  • SQL> startup; -- thực hiện trên 2 node
  • SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
+DATA01/MYDB/controlfile/current.200.899418013
+FRA01/MYDB/controlfile/current.200.800418013

7. Xóa backup spfile

  • rm /tmp/spfileBACKUP.ora

KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH: 
📧 Mail: binhoracle@gmail.com ☎️ Mobile: 0902912888 ⚡️ Skype: tranbinh48ca 👨 Facebook: https://www.facebook.com/BinhOracleMaster 👨 Inbox Messenger: https://m.me/101036604657441 (profile) 👨 Fanpage: https://www.facebook.com/tranvanbinh.vn 👨 Inbox Fanpage: https://m.me/tranvanbinh.vn 👨👩 Group FB: https://www.facebook.com/groups/OracleDBAVietNam 👨 Website: http://www.tranvanbinh.vn 👨 Blogger: https://tranvanbinhmaster.blogspot.com 🎬 Youtube: http://bit.ly/ytb_binhoraclemaster 👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi 👨 Linkin: https://www.linkedin.com/in/binhoracle 👨 Twitter: https://twitter.com/binhoracle 👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội #OracleTutorial #OracleDBA #OracleDatabaseAdministration #học oracle database #oca #ocp #oce #ocm

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master