Oracle切换为归档模式的步骤及问题解决

直接如题

查看当前数据库模式

连接进入数据库,键入以下命令:


代码如下:

SQL> archive log list;

可查看当前数据库的模式,若“数据库日志模式    非存档模式”则有必要进行以下的切换流程。

在切换之前,请确保以下参数的设置

log_archive_dest_n 参数设置归档日志目标,其中n用数字替换。在Oracle9i中n的范围是1~5,在Oracle10g中n可以取值1~10。设置方式如下:


代码如下:

SQL> alter system set log_archive_dest_1="location=path" scope=both;

其中,path是存储归档日志文件的文件夹路径。最后的scope=both是为了将设置应用到当前数据库实例,以及将参数设置保存到SPFILE中,数据库重启时直接加载SPFILE中的参数信息。
可以设置多个归档日志目标。设置多个目标,在进行归档的时候归档日志文件可以同时保存成多个归档版本,设置多个目标是个好习惯,虽然在问题出现之前似乎没有必要^_^

关闭数据库

代码如下:

SQL> shutdown immediate

关闭数据库一般不会出现什么问题,但在数据库投入使用之后,关闭数据库必须是迫不得已的(即使你是故意关闭它也要表现得很迫不得已,呵呵)——最好确保关闭是没有人正在使用数据库,要不然,有你等的^_^。

启动数据库为挂起(mount)状态

代码如下:

SQL> startup mount

行至此步,真正的问题才出现。mount了无数次始终startup不上,说是监听程序无法监听到你当前的例程了。当然,如果监听程序配置得当,此类问题是不会在这里出现的。既然是监听程序出现问题,那么就从这里入手进行解决。在oracle数据库的安装目录下(路径可能如:E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN)可以找到listener.ora这种参数文件,可用记事本打开它们进行编辑和保存。当然直接手工修改这个文件并非明智之举,因为其中的括号可以扼杀你无数的脑细胞。在安装oracle时一般都会默认安装Net Manager这个组件,它可以帮助你轻松地配置监听程序的烦人参数:
Oracle Net配置 》监听程序 》LISTENER,在窗体右边最上边的下拉框中选择“数据库服务”。如果你尚未监听数据库服务,那么这就是你解决问题的关键所在。添加数据库,全局数据库和SID设置为与tnsnames.ora文件中的SERVICE_NAME相同的值(注:tnsnames.ora文件与listener.ora文件在同一个目录下)。保存,则在listener.ora中就会多出一些设置,如下:

代码如下:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
      (SID_NAME = ORCL)
    )
  )

红色部分正式监听程序中未配置完整的内容,现在配置好它,则以上无法使数据库进入挂起状态的问题就可以解决了。注意,以上假设tnsnames.ora文件中的SERVICE_NAME就是ORCL。当然,配置好监听程序参数后并未马上应用到监听程序中,我们还需要重新载入监听程序,进入命令行:


代码如下:

C:\>lsnrctl
 LSNRCTL> reload

重新连接一次数据库,则结果是“已连接到空闲例程”。此时再startup mount,则可顺利进入挂起状态。

在挂起状态的数据库例程中切换模式

代码如下:

SQL> alter system archivelog;

提示“数据库已更改”。在打开数据库后,用archive log list可以查看当前模式:数据库日志模式    存档模式。

打开数据库

代码如下:

SQL> alter database open;

挂起状态的数据库并非真实可用的状态,只有打开的数据库才是运行中可使用的例程。

结尾工作

打开自动归档


代码如下:

SQL> alter system set log_archive_start = true; scope=both;

手工归档;


代码如下:

SQL> alter system switch logfile; --可进行手工归档检测以上设置是否已经被应用到当前数据库中

设置快闪区大小


代码如下:

SQL> alter system set db_recovery_file_dest_size=5368709102;  --5G

其他问题
在切换模式的过程中我还碰到一个问题,即在我用写字板打开SPFILE时无意中按了保存。小小的保存带来大大的问题,SPFILE是一种二进制文件,写字板虽然能打开正常浏览大部分内容却无法读取文件中第一行的文件标识(正常情况下用写字板打开文件第一行是乱码,关键啊)。保存,得,SPFILE就被改成普通文本了,人是好读了,但Oracle不认识。没办法,重新建一个呗。

重建SPFILE需要系统中的PFILE。PFILE好的地方是它是文本文件^_^一般在建数据库的同时就已经创建了它,它所在的路径可能如下:E:\oracle\product\10.2.0\admin\orcl\pfile\。在此路径下有一个以init.ora.为文件名开头的文件,该文件的文件名结尾的部分是一串数字(默认情况下)。以sysdba的身份连接到数据库空闲例程(没有SPFILE数据库无法启动打开,只能连接到空闲例程如:conn / as sysdba),重建SPFILE的命令如下:


代码如下:

SQL> create spfile='E:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA' from pfile='E:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.************';

若重建成功,则提示“文件已创建”。创建新的SPFILE后数据库就能正常启动了,但是,以后请记住用系统命令alter system set...... scope=spfile;去修改SPFILE的内容。

(0)

相关推荐

  • 数据库ORA-01196故障-归档日志丢失恢复详解

    问题: 由于机房停电,其中一DG备库无法open,启动时报错 启动数据库时报下面的错误 SQL> alter database open; alter database open * 第 1 行出现错误: ORA-10458: standby database requiresrecovery ORA-01196: 文件 1 由于介质恢复会话失败而不一致 ORA-01110: 数据文件 1:'+DATA/htdb7/datafile/system.313.884996245' 查看归档日志应用情

  • oracle的归档模式 ORACLE数据库归档日志常用命令

    --连接恢复管理器 C:\Documents and Settings\mengzhaoliang>rman target/ --归档日志列表 RMAN> list archivelog all; --删除物理文件不存在的归档日志 RMAN> delete expired archivelog all; --删除7天前的归档日志 RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; oracle的归档模式 一.查看ora

  • oracle日志操作模式(归档模式和非归档模式的利与弊)

    笔者今天就谈谈自己对这两种操作模式的理解,并且给出一些可行的建议,跟大家一起来提高Oracle数据库的安全性. 一.非归档模式的利与弊. 非归档模式是指不保留重做历史的日志操作模式,只能够用于保护例程失败,而不能够保护介质损坏.如果数据库采用的是日志操作模式的话,则进行日志切换时,新的日志会直接覆盖原有日志文件的内容,不会保留原有日志文件中的数据. 这么说听起来可能比较难理解.笔者举一个简单的例子,就会清楚许多.如现在Oracle数据库中有四个日志组,日志序列号分别为11. 12.13.14.当

  • Oracle切换为归档模式的步骤及问题解决

    直接如题 查看当前数据库模式 连接进入数据库,键入以下命令: 复制代码 代码如下: SQL> archive log list; 可查看当前数据库的模式,若"数据库日志模式    非存档模式"则有必要进行以下的切换流程. 在切换之前,请确保以下参数的设置 log_archive_dest_n 参数设置归档日志目标,其中n用数字替换.在Oracle9i中n的范围是1~5,在Oracle10g中n可以取值1~10.设置方式如下: 复制代码 代码如下: SQL> alter sy

  • Oracle控制文件丢失恢复归档模式

    目录 一.查看控制文件路径和内容 二.模拟控制文件丢失情况: 1.未丢失全部控制文件 2.全部丢失,控制文件存在备份 通过备份文件重建控制文件 通过rman恢复控制文件 3.全部丢失,没有备份 三.建议 一.查看控制文件路径和内容 SQL> show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ cont

  • Linux下启动Oracle服务和监听程序步骤

    Linux下启动Oracle服务和监听程序启动和关闭步骤整理如下: 1.安装oracle: 2.创建oracle系统用户: 3./home/oracle下面的.bash_profile添加几个环境变量:ORACLE_SID,ORACLE_BASE,ORACLE_HOME: export ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx 4.启动步骤:注意$代表shell命令提示符,这里的ora

  • 分解oracle存储过程或函数调试过程步骤

    目录 第一步:选择调试模式 第二步:输入测试数据 第三步:点击开始调试器 第四步:输入要显示的变量名 第五步:点击单步调试 第六步:逐步点击单步调试,并查看变量的变化 第七步:不断重复前六步,直到函数或存储过程调试完成. 第一步:选择调试模式 找到数据库里functions包下需要调试的函数或存储过程,然后选中这个函数(或存储过程),单击右键,出现如下图所示,选中测试功能,进入调试模式. 第二步:输入测试数据 第三步:点击开始调试器 第四步:输入要显示的变量名 要输入的变量名,可以是输入的参数名

  • goland使用go mod模式的步骤详解

    使用go mod之后,想要在goland中有代码提示,有两种方式,一种是使用gopath下的goimport工具,另一种是使用gomod自身的管理工具 我是用的是非gopath的方式,每次新建项目后总是报错 go list -m: can't compute 'all' using the vendor directory (Use -mod=mod or -mod=readonly to bypass.), 得不到想要的效果,最后终于发现是步骤不对 第一步:创建空文件夹 第二步:goland以

  • Oracle创建只读账号的详细步骤

    需求说明 现有数据库账号:HEPSUSR:具有完整权限,增删改查. 需要创建一个数据库账号:HTREADER,对HEPSUSR账号下所有的表具有只读权限. 第一步:创建只读账号 --创建只读账号 第一步 CREATE USER htreader identified by 123456; 第二步:赋予账号连接数据库等基本权限 --赋予htreader连接等常规权限 grant connect to htreader; grant create view to htreader; grant cr

  • JAVA | Guava EventBus 使用 发布/订阅模式的步骤

    前言 EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现. 观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送.短信.通知卖家.买家等等:审批系统中,审批单的流程流转会通知发起审批用户.审批的领导等等. Observer模式也是 JDK 中自带就支持的,其在 1.0 版本就已经存在 Observer,不过随着 Java 版本的飞速升级,其使用方式一直没有变化,许多程序库提供了更加简单的实现,例如 Gu

  • ubuntu 安装linux 下vmVMware tools 步骤及问题解决方法

    一. 菜单栏 "虚拟机" --> "设置 " 使用linux.so镜像文件 此文件在vmware workstation 的安装目录.并且打开CD/DVD的连接. 二.终端执行如下命令 mount /dev/cdrom /mnt/cdrom 挂载 cd /mnt/cdrom cp VMwareXXX.tar.gz /tmp VMwareXXX.tar.gz 为自己vmware tools安装包, 复制到/tmp 目录下 umount /mnt/cdrom 解除

随机推荐