2013年9月25日星期三

记一次windows下oracle的整库移动

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
记一次windows下oracle的整库移动  阅读原文»

每日博报 精彩不止一点关闭
记一次windows下oracle的整库移动

按客户的要求,需要把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

美团网2014校招笔试题及解答(长沙站+哈尔滨站)  阅读原文»

美团网2014校招笔试题及解答(长沙站+哈尔滨站)

作者:寒小阳
时间:2013年9月。
出处:http://blog.csdn.net/han_xiaoyang/article/details/11924701
声明:版权所有,转载请注明出处,谢谢。

题目是网上找的,答案博主自己做的,有不当之处或者有更好的方法欢迎留言!

一堆硬币,一个机器人,如果是反的就翻正,如果是正的就抛掷一次,无穷多次后,求正反的比例(哈尔滨站)

典型的数学概率题(好吧,说明数学还是很重要滴,大家去笔试面前还是巩固一下概率比较好,恩),这里假设无穷多次后正面朝上的比例为x,则反面朝上的比例为1-x;则再投递一次,根据题意,正面朝上的概率的就变成1-x+(1/2*x),,反面朝上的概率变为1/2*x.因为此时已经达到平衡的状态,则该次投递前后概率应该不变,即1-x=1/2*x。解得x2/3

k链表翻转。给出一个链表和一个数k,比如链表123456k=2,则翻转后214365,若k=3,翻转后321654,若k=4,翻转后432156,用程序实现

  1. #include<stdio.h>

  2. #include<stdlib.h>

  3. #include<iostream>

  4. usingnamespace std;

  5. struct Node{

  6. int data;

  7. Node *next;

  8. };

  9. void ReverseLinkList(Node *head,Node *end){

  10. if(head==NULL||end==NULL) return;

  11. Node *pre=NULL,*cur=head,*stop=end->next;

  12. while(cur!=stop){

  13. Node* nxt=cur->next;

  14. cur->next=pre;

  15. pre=cur;

  16. cur=nxt;

  17. }

  18. }

  19. Node* ReverseKLinkList(Node *head,int k){

  20. if(head==NULL||k<=0) return NULL;

  21. Node *cur=head;

  22. for(int i=0;i<k-1;i++){

  23. cur=cur->next;

  24. if(cur==NULL)

  25. break;

  26. }

  27. if(cur==NULL) return head;

  28. Node* begin=cur->next,*end=begin;

  29. Node* pre=head;

  30. ReverseLinkList(head,cur);

  31. while(begin!=NULL){

  32. for(int i=0;i<k-1;i++){

  33. end=end->next;

  34. if(end==NULL)

  35. break;

  36. }

  37. if(end==NULL){

  38. pre->next=begin;

  39. break;

  40. }

  41. else{

  42. Node *nextbegin=end->next;

  43. ReverseLinkList(begin,end);

  44. pre->next=end;

  45. pre=begin;

  46. begin=end=nextbegin; 阅读更多内容

没有评论:

发表评论