变相怪杰 发表于 2015-1-16 22:40:42

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

分手快乐 发表于 2015-1-19 21:11:54

习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。

灵魂腐蚀 发表于 2015-1-27 08:20:25

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

柔情似水 发表于 2015-2-11 04:00:07

我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力

若相依 发表于 2015-3-1 21:06:28

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

冷月葬花魂 发表于 2015-3-10 23:45:35

你可以简单地认为适合的就是好,不适合就是不好。

不帅 发表于 2015-3-17 16:09:35

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

老尸 发表于 2015-3-24 11:15:58

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
页: [1]
查看完整版本: MSSQL编程:利用rman复制数据库