botang 发表于 2019-12-28 09:09:07

课程第35次

传送数据库步骤:
1. 从Linux上把所有文件(数据文件可以定名为linorcl....)拷贝到windows上来。
2. 在windows上oradim-NEW -SID orcl注册服务
3. 在cmd窗口中set ORACLE_SID=orcl,启动实例,转spfile。
4. 编辑trace文件,创建控制文件。(注意compatible参数要设成11.2.0.4.0)
5. 执行以下脚本,创建日志文件,修改控制文件(控制文件前后双向“采集”信息):
SQL> recover database until cancel using backup controlfile;
ORA-00279: ?? 1432064 (? 12/22/2019 22:28:02 ??) ???? 1 ????
ORA-00289: ??:
C:\APP\APPLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_12_28\O1_MF_1_12_%U_.ARC
ORA-00280: ?? 1432064 (???? 1) ??? #12 ?


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log
'C:\APP\APPLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_12_28\O1_MF_1_12_%U_.ARC'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????


ORA-00308: cannot open archived log
'C:\APP\APPLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_12_28\O1_MF_1_12_%U_.ARC'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????


SQL> recover database until cancel using backup controlfile;
ORA-00279: ?? 1432064 (? 12/22/2019 22:28:02 ??) ???? 1 ????
ORA-00289: ??:
C:\APP\APPLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\2019_12_28\O1_MF_1_12_%U_.ARC
ORA-00280: ?? 1432064 (???? 1) ??? #12 ?


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open resetlogs;

数据库已更改。

SQL>

----
SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS1.DBF
C:\APP\APPLE\ORADATA\LINORCL\USERS01.DBF
C:\APP\APPLE\ORADATA\LINORCL\UNDOTBS1.DBF
C:\APP\APPLE\ORADATA\LINORCL\SYSAUX01.DBF
C:\APP\APPLE\ORADATA\LINORCL\SYSTEM01.DBF
C:\APP\APPLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\MISSING00006

已选择6行。

SQL> alter database rename file 'C:\APP\APPLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\MISSING00006' to 'C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS2.DBF';

数据库已更改。

SQL> selectfile_name from dba_temp_files;

未选定行

SQL> alter tablespace temp add tempfile 'C:\APP\APPLE\ORADATA\LINORCL\temp01.dbf'size 30M ;

表空间已更改。

SQL> selectname from dba_tablespaces;
selectname from dba_tablespaces
      *
第 1 行出现错误:
ORA-00904: "NAME": ???????????????


SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TBSTRANS1
TBSTRANS2

已选择7行。

SQL> select tablespace_name, status from dba_tablespaces;

TABLESPACE_NAME                                              STATUS
------------------------------------------------------------ ------------------
SYSTEM                                                       ONLINE
SYSAUX                                                       ONLINE
UNDOTBS1                                                   ONLINE
TEMP                                                         ONLINE
USERS                                                      ONLINE
TBSTRANS1                                                    ONLINE
TBSTRANS2                                                    READ ONLY

已选择7行。

SQL> alter tablespace TBSTRANS2 read write ;
alter tablespace TBSTRANS2 read write
*
第 1 行出现错误:
ORA-01135: DML/query ??????????????? 6 ??????????????????
ORA-01110: ???????????? 6: 'C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS2.DBF'


SQL> recover tablespace TBSTRANS2;
ORA-00283: ??????????????????????????????
ORA-00264: ???????????????


SQL> recover datafile 6 ;
ORA-00283: ??????????????????????????????
ORA-00264: ???????????????


SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS1.DBF
C:\APP\APPLE\ORADATA\LINORCL\USERS01.DBF
C:\APP\APPLE\ORADATA\LINORCL\UNDOTBS1.DBF
C:\APP\APPLE\ORADATA\LINORCL\SYSAUX01.DBF
C:\APP\APPLE\ORADATA\LINORCL\SYSTEM01.DBF
C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS2.DBF

已选择6行。

SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

c:\app\Apple>rman target /

恢复管理器: Release 11.2.0.4.0 - Production on 星期六 12月 28 09:34:01 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.All rights reserved.

已连接到目标数据库: ORCL (DBID=1554722616)

RMAN> recover tablespace tbstrans2;

启动 recover 于 28-12月-19
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=11 设备类型=DISK

正在开始介质的恢复
介质恢复完成, 用时: 00:00:00

完成 recover 于 28-12月-19

RMAN> exit


恢复管理器完成。

c:\app\Apple>sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on 星期六 12月 28 09:34:18 2019

Copyright (c) 1982, 2013, Oracle.All rights reserved.

SQL> conn / as sysdba
已连接。
SQL> alter tablespace tbstrans2 read write ;
alter tablespace tbstrans2 read write
*
第 1 行出现错误:
ORA-01135: DML/query 访问的文件 6 处于脱机状态
ORA-01110: 数据文件 6: 'C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS2.DBF'


SQL> alter tablespace tbstran2 online ;
alter tablespace tbstran2 online
*
第 1 行出现错误:
ORA-00959: 表空间 'TBSTRAN2' 不存在


SQL> alter tablespace tbstrans2 online ;

表空间已更改。

SQL> alter tablespace tbstrans2 read write ;

表空间已更改。

SQL>
如果有无效对象或者不通用户登录会报告警:
SHUTDOWN IMMEDIATE
STARTUP UPGRADE
@@ ?/rdbms/admin/utlirp.sql
SHUTDOWN IMMEDIATE
STARTUP
-- The following step will recompile all PL/SQL modules.
-- It may take serveral hours to complete.
@@ ?/rdbms/admin/utlrp.sql
------------------------------------------
改名字,改ID:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 2137886720 bytes
Fixed Size                  2282944 bytes
Variable Size            1224739392 bytes
Database Buffers          905969664 bytes
Redo Buffers                4894720 bytes
数据库装载完毕。
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

c:\app\Apple>nid

DBNEWID: Release 11.2.0.4.0 - Production on 星期六 12月 28 09:52:38 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.All rights reserved.

关键字      说明                  (默认值)
----------------------------------------------------
TARGET      用户名/口令            (无)
DBNAME      新的数据库名             (无)
LOGFILE   输出日志                     (无)
REVERT      还原失败的更改            否
SETNAME   仅设置新的数据库名      否
APPEND      附加至输出日志            否
HELP      显示这些消息            否


c:\app\Apple>nid target=sys/oracle_4U dbname=linorcl

DBNEWID: Release 11.2.0.4.0 - Production on 星期六 12月 28 09:53:40 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.All rights reserved.

已连接数据库 ORCL (DBID=1554722616)

已连接服务器版本 11.2.0

数据库中的控制文件数:
    C:\APP\APPLE\ORADATA\LINORCL\CONTROL01.CTL
    C:\APP\APPLE\ORADATA\LINORCL\CONTROL02.CTL
    C:\APP\APPLE\ORADATA\LINORCL\CONTROL03.CTL

是否将数据库 ID 和数据库名 ORCL 更改为 LINORCL? (Y/) => Y

操作继续进行
将数据库 ID 从 1554722616 更改为 2536376996
将数据库名从 ORCL 更改为 LINORCL
    控制文件 C:\APP\APPLE\ORADATA\LINORCL\CONTROL01.CTL - 已修改
    控制文件 C:\APP\APPLE\ORADATA\LINORCL\CONTROL02.CTL - 已修改
    控制文件 C:\APP\APPLE\ORADATA\LINORCL\CONTROL03.CTL - 已修改
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\SYSTEM01.DB - dbid 已更改, 已写入新名称
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\SYSAUX01.DB - dbid 已更改, 已写入新名称
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\UNDOTBS1.DB - dbid 已更改, 已写入新名称
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\USERS01.DB - dbid 已更改, 已写入新名称
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS1.DB - dbid 已更改, 已写入新名称
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\TBSTRANS2.DB - dbid 已更改, 已写入新名称
    数据文件 C:\APP\APPLE\ORADATA\LINORCL\TEMP01.DB - dbid 已更改, 已写入新名称
    控制文件 C:\APP\APPLE\ORADATA\LINORCL\CONTROL01.CTL - dbid 已更改, 已写入新名称
    控制文件 C:\APP\APPLE\ORADATA\LINORCL\CONTROL02.CTL - dbid 已更改, 已写入新名称
    控制文件 C:\APP\APPLE\ORADATA\LINORCL\CONTROL03.CTL - dbid 已更改, 已写入新名称
    实例关闭

数据库名已更改为 LINORCL。
修改参数文件并在重新启动前生成新的口令文件。
数据库 LINORCL 的数据库 ID 已更改为 2536376996。
此数据库的所有以前的备份和归档重做日志均不可用。
数据库无法识别恢复区中以前的备份和归档日志。
数据库已关闭, 用 RESETLOGS 选项打开数据库。
已成功更改数据库名和 ID。
DBNEWID - 已成功完成。


c:\app\Apple>在win上删除旧的orcl实例:
PS C:\Windows\system32> oradim -NEW -SID linorcl
实例已创建。
PS C:\Windows\system32> oradim -DELETE -SID orcl
实例已删除。
PS C:\Windows\system32>
c:\app\Apple>set ORACLE_SID=linorcl

c:\app\Apple>sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on 星期六 12月 28 10:03:04 2019

Copyright (c) 1982, 2013, Oracle.All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> create spfile from pfile;

文件已创建。

SQL> startup mount
ORA-00400: invalid release value ??11.2.0.4.0?? for parameter compatible
SQL> exit
已断开连接

c:\app\Apple>sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on 星期六 12月 28 10:04:32 2019

Copyright (c) 1982, 2013, Oracle.All rights reserved.

SQL> conn / as sysdba
已连接到空闲例程。
SQL> create spfile from pfile;
create spfile from pfile
*
第 1 行出现错误:
ORA-01078: failure in processing system parameters
LRM-00123: invalid character 147 found in the input file


SQL> create spfile from pfile;

文件已创建。

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 2137886720 bytes
Fixed Size                  2282944 bytes
Variable Size            1224739392 bytes
Database Buffers          905969664 bytes
Redo Buffers                4894720 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;

数据库已更改。

SQL> selectcount(*) from dba_objects where status <> 'VALID';

COUNT(*)
----------
         0

SQL> selectdbid from v$database;

      DBID
----------
2536376996

SQL>





页: [1]
查看完整版本: 课程第35次