oracle 11gr2 活動資料庫複製(active database duplication)
oracle的自動化程度越來越高,在oracle 11g中,可以直接在網路上覆制一個資料庫而不必備份和提供源資料庫檔案到目的庫.
在測試中發現和以往的duplicate在細節上有此不同,容易出一些小錯誤,下面測試並對錯誤說明.
os:centos 6.6
oracle:11.2.0.4
host:ct6605(192.108.56.121) ct6604(192.108.56.120)
這裡要把ct6605上的ct6605資料庫複製到ct6604上,並且資料庫名更改為ct66
1.在ct6604上建相應目錄
[oracle@ct6604 db_1]$ mkdir -p /u01/app/oracle/admin/ct66/adump
[oracle@ct6604 db_1]$ mkdir -p /u01/app/oracle/fast_recovery_area/ct66
[oracle@ct6604 db_1]$ mkdir -p /u02/oradata/ct66
[oracle@ct6604 db_1]$ mkdir -p /u03/archivelog/ct66
2.在ct6604上建立和ct6605相同密碼的密碼檔案,當然也可以直接從ct6605上scp過來
[oracle@ct6604 dbs]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@ct6604 dbs]$ orapwd file=orapwct66 password=system entries=20 ignorecase=n
3.在ct6604上啟動ct66例項.
此處其實是可以不用pfile啟動的,指定ORACLE_SID,用nopfile啟動,這樣最簡單.
如果$ORACLE_HOME/dbs下存在initct66.ora或spfilect66.ora,刪除.
[oracle@ct6604 dbs]$ ORACLE_SID=ct66
[oracle@ct6604 dbs]$ rman target /
RMAN> startup nomount;
RMAN> exit
使用spfile啟動來複制,會報
RMAN-05537: DUPLICATE without TARGET connection when auxiliary instance is started with spfile cannot use SPFILE clause
也許你沒有建spfile,但這可能是你上次複製報錯的步驟中產生的.
4.在ct6605 tnsnames.ora上新增到ct66連線的tnsname
t_ct66 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.108.56.120)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ct66)
)
)
這裡如果沒有新增或者和第5步中的tnsname名字不同,在複製時就會報
ORA-17627: ORA-12154: TNS:could not resolve the connect identifier specified
ORA-17629: Cannot connect to the remote database server
5.在ct605 tnsnames.ora上新增到ct6605和自身ct66的連線
s_ct6605 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.108.56.121)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ct6605)
)
)
t_ct66 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.108.56.120)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ct66)
)
)
這裡ct66自身也是要新增tnsname的,不新增自身的tnsname,透過 rman auxiliary / 連線,在複製時會報
RMAN-06217: not connected to auxiliary database with a net service name
6.在ct6604 listener.ora檔案中新增ct66的靜態註冊
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ct66)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = ct66)
)
)
這裡是為了讓ct66 nomount時,對應的監聽處於unknown狀態,否則複製時會報
RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections
7.開始複製資料庫
[oracle@ct6604 dbs]$ rman target sys/system@s_ct6605 auxiliary sys/system@t_ct66
RMAN> duplicate target database
to ct66
from active database
spfile
parameter_value_convert 'ct6605','ct66'
set log_file_name_convert 'ct6605','ct66'
db_file_name_convert 'ct6605','ct66';
到此,ct66資料庫就建立完成併為開啟狀態.
這裡還可以透過set sga_max_size,set sga_target等來設定ct66的引數.
上面在複製過程中更改了資料庫名,如果不準備更改,可能就不需要parameter_value_convert/log_file_name_convert/db_file_name_convert,
但在測試中發現如果ct6605的spfile中本身存在db/log_file_convert這些引數,複製到ct6604上後,這些引數會因為生效而可能導致錯誤,
此時可以在duplicate時還是設這些引數來遮蔽.
duplicate target database
to ct6605
from active database
spfile
parameter_value_convert 'xxxx','xxxx'
set log_file_name_convert 'xxxx','xxxx'
db_file_name_convert 'xxxx','xxxx'
nofilenamecheck;
備註:
此功能同樣支援加入for standby子句來建standby.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1818296/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 11g RMAN新特性 active database duplication 複製資料庫Database資料庫
- Oracle Active database duplicationOracleDatabase
- Oracle 11gR2 使用 RMAN duplicate from active database 複製資料庫OracleDatabase資料庫
- 使用RMAN複製資料庫 active database資料庫Database
- RMAN duplicate from active database 複製資料庫Database資料庫
- oracle 11g duplicate from active database 複製資料庫(四)OracleDatabase資料庫
- oracle 11g duplicate from active database 複製資料庫(三)OracleDatabase資料庫
- oracle 11g duplicate from active database 複製資料庫(二)OracleDatabase資料庫
- oracle 11g duplicate from active database 複製資料庫(一)OracleDatabase資料庫
- Oracle活動資料庫複製Oracle資料庫
- 11g 新特性—— Active Database Duplication for A standby databaseDatabase
- 11g 新特性—— Active Database DuplicationDatabase
- RMAN的活動資料庫複製資料庫
- Oracle 11gR2 使用RMAN Duplicate複製資料庫Oracle資料庫
- 11g從活動資料庫複製資料庫資料庫
- oracle rman複製資料庫Oracle資料庫
- 11g RMAN新特性 active database duplication createing standbyDatabase
- Oracle 之 Duplicate 複製資料庫Oracle資料庫
- oracle實驗-資料庫複製Oracle資料庫
- oracle 11g duplicate database基於備份複製資料庫(六)OracleDatabase資料庫
- oracle 11g duplicate database基於備份複製資料庫(五)OracleDatabase資料庫
- oracle 11g duplicate database基於備份複製資料庫(四)OracleDatabase資料庫
- oracle 11g duplicate database基於備份複製資料庫(三)OracleDatabase資料庫
- oracle 11g duplicate database基於備份複製資料庫(二)OracleDatabase資料庫
- oracle 11g duplicate database基於備份複製資料庫(一)OracleDatabase資料庫
- Oracle 11gR2 Database和Active Data Guard遷移案例OracleDatabase
- 使用RMAN複製活動資料庫(檔案路徑相同)資料庫
- 使用RMAN複製活動資料庫(檔案路徑不同)資料庫
- 資料庫複製資料庫
- 複製資料庫資料庫
- 資料庫複製(一)–複製介紹資料庫
- DM7資料複製之資料庫級複製資料庫
- Oracle10G RMAN Database Duplication (Doc ID 259694.1)OracleDatabase
- ORACLE SQL Developer4資料庫複製案例OracleSQLDeveloper資料庫
- 從A機複製ORACLE資料庫到B機Oracle資料庫
- 在Oracle中實現資料庫的複製Oracle資料庫
- Oracle備份與恢復系列(四)複製資料庫 續 手工複製資料庫的最簡操作Oracle資料庫
- oracle之 oracle database vault(資料庫保險庫)OracleDatabase資料庫