按客户的要求,需要把oracle库控制文件、数据文件、以及联机日志文件从本地磁盘移到存储上,为后续cluster工作做准备,为此,准备两套方案,模拟记录如下
方案一步骤如下:
1shutdownimmediate数据库
2copydatafiles、logfiles、controlfiles、tempfiles到新的目录
3startupnomount数据库
4用命令altersystemsetcontrol_files指定控制文件新位置
5startupforcemount数据库
6指定datafiles、tempfiles新位置
7指定redo日志文件新位置
8alterdatabaseopen数据库
方案二步骤如下:
1生成重建控制文件的语句
2shutdownimmediate数据库
3copydatafiles、logfiles、tempfiles、到新的位置
4用命令altersystemsetcontrol_files更改spfile文件中控制文件的指向
5重建控制文件
6为temp表空间的添加数据文件
方案1执行过程如下:
1查询当前数据文件和日志文件如下:
SQL>selectnamefromv$datafile;
NAME
--------------------------------------------------
G:\DATA\ERP\SYSTEM01.DBF
G:\DATA\ERP\SYSAUX01.DBF
G:\DATA\ERP\UNDOTBS01.DBF
G:\DATA\ERP\USERS01.DBF
SQL>selectgroup#,memberfromv$logfile;
GROUP#MEMBER
------------------------------------------------------------
2G:\DATA\ERP\REDO02.LOG
1G:\DATA\ERP\REDO01.LOG
3G:\DATA\ERP\REDO03.LOG
2一致性关闭数据库:
SQL>shutdownimmediate;
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL>
3拷贝数据文件、日志文件、临时数据文件、控制文件到存储目录下:
C:\Users\Administrator.ZX>copyG:\DATA\ERP\*.*E:\DATA\ERP\
G:\DATA\ERP\CONTROL01.CTL
G:\DATA\ERP\CONTROL02.CTL
G:\DATA\ERP\REDO01.LOG
G:\DATA\ERP\REDO02.LOG
G:\DATA\ERP\REDO03.LOG
G:\DATA\ERP\SYSAUX01.DBF
G:\DATA\ERP\SYSTEM01.DBF
G:\DATA\ERP\TEMP01.DBF
G:\DATA\ERP\UNDOTBS01.DBF
G:\DATA\ERP\USERS01.DBF
已复制10个文件。
4用命令altersystemsetcontrol_files指定控制文件新位置
C:\Users\Administrator.ZX>sqlplus/assysdba
SQL*Plus:Release11.2.0.1.0Productionon星期五9月2017:29:492013
Copyright(c)1982,2010,Oracle.Allrightsreserved.
已连接到空闲例程。
SQL>startupnomount;
ORACLE例程已经启动。
TotalSystemGlobalArea430075904bytes
FixedSize2176448bytes
VariableSize301992512bytes
DatabaseBuffers117440512bytes
RedoBuffers8466432bytes
SQL>showparametercontrol_files;
NAMETYPEVALUE
----------------------------------------------------------------------------------------
control_filesstringG:\DATA\ERP\CONTROL01.CTL,G:\
DATA\ERP\CONTROL02.CTL
SQL>altersystemsetcontrol_files='E:\DATA\ERP\CONTROL01.CTL','E:\DATA\ERP\CONTROL02.CTL'scope=spfile;
系统已更改。
SQL>startupforcemount;
ORACLE例程已经启动。
TotalSystemGlobalArea430075904bytes
FixedSize2176448bytes
VariableSize301992512bytes
DatabaseBuffers117440512bytes
RedoBuffers8466432bytes
数据库装载完毕。
SQL>showparametercontrol_files;
NAMETYPEVALUE
-----------------------------------------------------------------------------
control_filesstringE:\DATA\ERP\CONTROL01.CTL,E:\
DATA\ERP\CONTROL02.CTL
SQL>
5指定数据文件和临时数据文件新位置
SQL>alterdatabaserenamefile'G:\DATA\ERP\SYSAUX01.DBF',
2'G:\DATA\ERP\SYSTEM01.DBF',
3'G:\DATA\ERP\UNDOTBS01.DBF',
4'G:\DATA\ERP\USERS01.DBF',
5'G:\DATA\ERP\TEMP01.DBF'
6to'E:\DATA\ERP\SYSAUX01.DBF',
7'E:\DATA\ERP\SYSTEM01.DBF',
8'E:\DATA\ERP\UNDOTBS01.DBF',
9'E:\DATA\ERP\USERS01.DBF',
10'E:\DATA\ERP\TEMP01.DBF';
数据库已更改。
6指定日志文件新位置:
SQL>alterdatabaserenamefile'G:\DATA\ERP\REDO01.LOG',
2'G:\DATA\ERP\REDO02.LOG',
3'G:\DATA\ERP\REDO03.LOG'
4to'E:\DATA\ERP\REDO01.LOG',
5'E:\DATA\ERP\REDO02.LOG',
6'E:\DATA\ERP\REDO03.LOG';
数据库已更改。
SQL>selectfile#,name,statusfromv$datafile;
FILE#NAMESTATUS
-----------------------------------------------------------------------------
1E:\DATA\ERP\SYSTEM01.DBFSYSTEM
2E:\DATA\ERP\SYSAUX01.DBFONLINE
3E:\DATA\ERP\UNDOTBS01.DBFONLINE
4E:\DATA\ERP\USERS01.DBFONLINE
SQL>selectgroup#,memberfromv$logfile;
GROUP#MEMBER
------------------------------------------------------------
2E:\DATA\ERP\REDO02.LOG
1E:\DATA\ERP\REDO01.LOG
3E:\DATA\ERP\REDO03.LOG
SQL>selectname,statusfromv$tempfile;
NAMESTATUS
-------------------------------------------------------------------
E:\DATA\ERP\TEMP01.DBFONLINE
第二种方案移库过程如下:
1生成重建控制文件的语句:
SQL>selectopen_modefromv$database;
OPEN_MODE 作者:寒小阳 题目是网上找的,答案博主自己做的,有不当之处或者有更好的方法欢迎留言! 一堆硬币,一个机器人,如果是反的就翻正,如果是正的就抛掷一次,无穷多次后,求正反的比例(哈尔滨站) 典型的数学概率题(好吧,说明数学还是很重要滴,大家去笔试面前还是巩固一下概率比较好,恩),这里假设无穷多次后正面朝上的比例为x,则反面朝上的比例为1-x;则再投递一次,根据题意,正面朝上的概率的就变成1-x+(1/2*x),,反面朝上的概率变为1/2*x.因为此时已经达到平衡的状态,则该次投递前后概率应该不变,即1-x=1/2*x。解得x为2/3 k链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现。 #include<stdio.h> #include<stdlib.h> #include<iostream> usingnamespace std; struct Node{ int data; Node *next; }; void ReverseLinkList(Node *head,Node *end){ if(head==NULL||end==NULL) return; Node *pre=NULL,*cur=head,*stop=end->next; while(cur!=stop){ Node* nxt=cur->next; cur->next=pre; pre=cur; cur=nxt; } } Node* ReverseKLinkList(Node *head,int k){ if(head==NULL||k<=0) return NULL; Node *cur=head; for(int i=0;i<k-1;i++){ cur=cur->next; if(cur==NULL) break; } if(cur==NULL) return head; Node* begin=cur->next,*end=begin; Node* pre=head; ReverseLinkList(head,cur); while(begin!=NULL){ for(int i=0;i<k-1;i++){ end=end->next; if(end==NULL) break; } if(end==NULL){ pre->next=begin; break; } else{ Node *nextbegin=end->next; ReverseLinkList(begin,end); pre->next=end; pre=begin; begin=end=nextbegin;
时间:2013年9月。
出处:http://blog.csdn.net/han_xiaoyang/article/details/11924701
声明:版权所有,转载请注明出处,谢谢。
没有评论:
发表评论