MSSQL编程:利用rman复制数据库
也就是说在php本地调用pdoprepare中的mysql_real_escape_string来操作query,使用的是本地单字节字符集,即编码为xbfx5cx27,并带入到mysql中查询,由于使用setnames设置了连接字符集.数据|数据库--------------------------------------------
实行情况:windows+oracle10.1.0.2.0
原数据库:ning[回档形式]复制数据库:test
Author:NinGoo2005-3-27
-------------------------------------------
在统一台server上利用rman的DuplicateDatabase创立复制数据库。
1.创立新的instance
筹办好响应的目次布局
E:oracleproduct10.1.0admin estdump
E:oracleproduct10.1.0admin estcdump
E:oracleproduct10.1.0admin estcreate
E:oracleproduct10.1.0admin estpfile
E:oracleproduct10.1.0admin estcripts
E:oracleproduct10.1.0admin estudmp
创立参数文件inittest.ini(可以使用原库的pfile举行修正),次要参数以下:
db_name=test
background_dump_dest=E:oracleproduct10.1.0admin estdump
core_dump_dest=E:oracleproduct10.1.0admin estcdump
user_dump_dest=E:oracleproduct10.1.0admin estudump
control_files=E:oracleoradata estcontrol01.ctl,E:oracleoradata estcontrol02.ctl,E:oracleoradata estcontrol03.ctl
DB_FILE_NAME_CONVERT=(E:oracleoradata
ing,E:oracleoradata est)
LOG_FILE_NAME_CONVERT=(E:oracleoradata
ing,E:oracleoradata est)
置于E:oracleproduct10.1.0admin estpfile大概E:oracleproduct10.1.0db_1database便可。
利用oradim创立新的instance
c:>oradim-new-sidtest
例程已创立。
利用orapwd创立password文件
c:>orapwdfile=E:oracleproduct10.1.0db_1databasePWDtest.orapassword=testentries=10
设置好监听和tnsnames,然后利用sqlplus测试毗连
c:>sqlplus/nolog
SQL*Plus:Release10.1.0.2.0-Productionon日曜日3月2721:01:132005
Copyright(c)1982,2004,Oracle.Allrightsreserved.
SQL>connsys@testassysdba
请输出口令:
已毗连到余暇例程。
2.利用rman备份原库
RMAN>connecttargetsys/ning@ning
毗连到方针数据库:NING(DBID=1141544503)
正在利用方针数据库把持文件替换恢复目次
RMAN>backupfulldatabasetagfullbkformate:oracleorabackfull%u_%s_%p;
启动backup于27-3月-05
利用通道ORA_DISK_1
通道ORA_DISK_1:启动全体数据文件备份集
通道ORA_DISK_1:正在指定备份会合的数据文件
输出数据文件fno=00001name=E:ORACLEORADATANINGYSTEM01.DBF
输出数据文件fno=00002name=E:ORACLEORADATANINGUNDOTBS01.DBF
输出数据文件fno=00004name=E:ORACLEORADATANINGUSERS01.DBF
输出数据文件fno=00003name=E:ORACLEORADATANINGYSAUX01.DBF
输出数据文件fno=00005name=E:ORACLEORADATANINGTEST01.DBF
通道ORA_DISK_1:正在启动段1于27-3月-05
通道ORA_DISK_1:已完成段1于27-3月-05
段handle=E:ORACLEORABACKFULL03GGCQA4_3_1comment=NONE
通道ORA_DISK_1:备份集已完成,经由工夫:00:00:45
通道ORA_DISK_1:启动全体数据文件备份集
通道ORA_DISK_1:正在指定备份会合的数据文件
备份会合包含以后把持文件
在备份会合包括以后的SPFILE
通道ORA_DISK_1:正在启动段1于27-3月-05
通道ORA_DISK_1:已完成段1于27-3月-05
段handle=E:ORACLEORABACKFULL04GGCQBH_4_1comment=NONE
通道ORA_DISK_1:备份集已完成,经由工夫:00:00:09
完成backup于27-3月-05
3.利用rman复制数据库
c:>rmantargetsys/ning@ningAUXILIARYsys/test@test
恢复办理器:版本10.1.0.2.0-Production
opyright(c)1995,2004,Oracle.Allrightsreserved.
毗连到方针数据库:NING(DBID=1141544503)
已毗连到备用数据库:test(未装载)
RMAN>DUPLICATETARGETDATABASETOtest;
启动DuplicateDb于27-3月-05
利用通道ORA_AUX_DISK_1
内存剧本的内容:
{
setuntilscn169960;
setnewnamefordatafile1to
"E:ORACLEORADATATESTYSTEM01.DBF";
setnewnamefordatafile2to
"E:ORACLEORADATATESTUNDOTBS01.DBF";
setnewnamefordatafile3to
"E:ORACLEORADATATESTYSAUX01.DBF";
setnewnamefordatafile4to
"E:ORACLEORADATATESTUSERS01.DBF";
setnewnamefordatafile5to
"E:ORACLEORADATATESTTEST01.DBF";
restore
checkreadonly
clonedatabase
;
}
正在实行内存剧本
正在实行命令:SETuntilclause
正在实行命令:SETNEWNAME
正在实行命令:SETNEWNAME
正在实行命令:SETNEWNAME
正在实行命令:SETNEWNAME
正在实行命令:SETNEWNAME
启动restore于27-3月-05
利用通道ORA_AUX_DISK_1
通道ORA_AUX_DISK_1:正在入手下手恢单数据文件备份集
通道ORA_AUX_DISK_1:正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:ORACLEORADATATESTYSTEM01.DBF
正将数据文件00002恢复到E:ORACLEORADATATESTUNDOTBS01.DBF
正将数据文件00003恢复到E:ORACLEORADATATESTYSAUX01.DBF
正将数据文件00004恢复到E:ORACLEORADATATESTUSERS01.DBF
正将数据文件00005恢复到E:ORACLEORADATATESTTEST01.DBF
通道ORA_AUX_DISK_1:已恢复备份段1
段句柄=E:ORACLEORABACKFULL03GGCQA4_3_1标志=FULLBK
通道ORA_AUX_DISK_1:恢复完成
完成restore于27-3月-05
sql语句:CREATECONTROLFILEREUSESETDATABASE"test"RESETLOGSARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY454
LOGFILE
GROUP1E:oracleoradata estedo01.logSIZE10M,
GROUP2E:oracleoradata estedo02.logSIZE10M,
GROUP3E:oracleoradata estedo03.logSIZE10M
DATAFILE
E:ORACLEORADATATESTYSTEM01.DBF
CHARACTERSETZHS16GBK
内存剧本的内容:
{
switchclonedatafileall;
}
正在实行内存剧本
数据文件2已转换成数据文件正本
输出数据文件正本recid=1stamp=554071105文件名=E:ORACLEORADATATESTUNDOTBS01
.DBF
数据文件3已转换成数据文件正本
输出数据文件正本recid=2stamp=554071105文件名=E:ORACLEORADATATESTYSAUX01.
DBF
数据文件4已转换成数据文件正本
输出数据文件正本recid=3stamp=554071105文件名=E:ORACLEORADATATESTUSERS01.D
BF
数据文件5已转换成数据文件正本
输出数据文件正本recid=4stamp=554071105文件名=E:ORACLEORADATATESTTEST01.DB
F
内存剧本的内容:
{
setuntilscn169960;
recover
clonedatabase
deletearchivelog
;
}
正在实行内存剧本
正在实行命令:SETuntilclause
启动recover于27-3月-05
利用通道ORA_AUX_DISK_1
正在入手下手介质的恢复
存档日记线程1序列16已作为文件E:ORACLEARCHARC00016_0553949015.001存在于
磁盘上
存档日记文件名=E:ORACLEARCHARC00016_0553949015.001线程=1序列=16
完成介质的恢复
完成recover于27-3月-05
内存剧本的内容:
{
shutdownclone;
startupclonenomount;
}
正在实行内存剧本
数据库已卸载
Oracle例程已封闭
已毗连到备用数据库(未启动)
Oracle例程已启动
体系全局地区总计142606336字节
FixedSize787848字节
VariableSize116390520字节
DatabaseBuffers25165824字节
RedoBuffers262144字节
sql语句:CREATECONTROLFILEREUSESETDATABASE"test"RESETLOGSARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY454
LOGFILE
GROUP1E:oracleoradata estedo01.logSIZE10M,
GROUP2E:oracleoradata estedo02.logSIZE10M,
GROUP3E:oracleoradata estedo03.logSIZE10M
DATAFILE
E:ORACLEORADATATESTYSTEM01.DBF
CHARACTERSETZHS16GBK
内存剧本的内容:
{
catalogclonedatafilecopy"E:ORACLEORADATATESTUNDOTBS01.DBF";
catalogclonedatafilecopy"E:ORACLEORADATATESTYSAUX01.DBF";
catalogclonedatafilecopy"E:ORACLEORADATATESTUSERS01.DBF";
catalogclonedatafilecopy"E:ORACLEORADATATESTTEST01.DBF";
switchclonedatafileall;
}
正在实行内存剧本
已将数据文件正本列进目次
数据文件正本filename=E:ORACLEORADATATESTUNDOTBS01.DBFrecid=1stamp=5540716
73
已将数据文件正本列进目次
数据文件正本filename=E:ORACLEORADATATESTYSAUX01.DBFrecid=2stamp=55407167
3
已将数据文件正本列进目次
数据文件正本filename=E:ORACLEORADATATESTUSERS01.DBFrecid=3stamp=554071673
已将数据文件正本列进目次
数据文件正本filename=E:ORACLEORADATATESTTEST01.DBFrecid=4stamp=554071673
数据文件2已转换成数据文件正本
输出数据文件正本recid=1stamp=554071673文件名=E:ORACLEORADATATESTUNDOTBS01
.DBF
数据文件3已转换成数据文件正本
输出数据文件正本recid=2stamp=554071673文件名=E:ORACLEORADATATESTYSAUX01.
DBF
数据文件4已转换成数据文件正本
输出数据文件正本recid=3stamp=554071673文件名=E:ORACLEORADATATESTUSERS01.D
BF
数据文件5已转换成数据文件正本
输出数据文件正本recid=4stamp=554071673文件名=E:ORACLEORADATATESTTEST01.DB
F
内存剧本的内容:
{
Alterclonedatabaseopenresetlogs;
}
正在实行内存剧本
数据库已翻开
完成DuplicateDb于27-3月-05
4.反省复制库的形态
C:>sqlplus/nolog
SQL*Plus:Release10.1.0.2.0-Productionon日曜日3月2721:05:522005
Copyright(c)1982,2004,Oracle.Allrightsreserved.
SQL>connsys@testassysdba
请输出口令:
已毗连。
SQL>selectinstance_name,statusfromv$instance;
INSTANCE_NAMESTATUS
----------------------------
testOPEN
然后往失落inittest.ora的DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数,再利用该文件天生spfile
SQL>createspfilefrompfile=E:oracleproduct10.1.0db_1databaseinittest.ora;
文件已创立。
===============================================================
参考文章:
Oracle 习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。 外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力 相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐 你可以简单地认为适合的就是好,不适合就是不好。 这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
页:
[1]