夜鹰教程网-程序员的加油站
 当前位置:文章中心 >> sql2016_sql2012_sql2015_sql2008
当Oracle切换为归档模式的流程及遇到的问题
夜鹰教程网 来源:www.yyjcw.com 日期:2016-11-30 19:55:14
Oracle切换为归档模式的流程及遇到的问题
  1. 查看当前数据库模式

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

     SQL> archive log list;

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

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

    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中的参数信息。

    可以设置多个归档日志目标。设置多个目标,在进行归档的时候归档日志文件可以同时保存成多个归档版本,设置多个目标是个好习惯,虽然在问题出现之前似乎没有必要^_^

  3. 关闭数据库
     SQL> shutdown immediate

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

  4. 启动数据库为挂起(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,则可顺利进入挂起状态。

  5. 在挂起状态的数据库例程中切换模式
     SQL> alter system archivelog;

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

  6. 打开数据库
     SQL> alter database open;

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

  7. 结尾工作

    打开自动归档

     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

  8. 其他问题

    在切换模式的过程中我还碰到一个问题,即在我用写字板打开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的内容。

复制链接 网友评论 收藏本文 关闭此页
上一条: 不同恢复的特性--Oracle数据库备份…  下一条: SQL Server 2008与SQL Server 2005的区…
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  热点推荐
牛人是怎样处理海量数据的
MYSQL与MSSQL UPDATE两表更新语法…
SQL SERVER常用日期函数的详解
随机查询ORDER BY NEWID()
批量插入数据 延时 SQL
用sql转换汉字为拼音
定时同步服务器上的数据
SQL Server 2008与SQL Server 200…
在XP下安装SQL Server2000 清除安…
SQL触发器实例
Mssql触发器学习例子之UPDATE触发…
两表连接的SQL语句
写一个HTML代码或C++代码分析器是…
分页存储过程!
普通行列转换 SQL(1)
  最近更新
SQL命令:增加字段、修改字段、修…
sql 中的 indexOf 与 lastIndexOf…
SQL中使用正则表达式提取或者过滤…
什么是BI?
Mongodb是一种比较常见的NOSQL数据…
SQL2008 提示评估期已过的解决方法…
存在属性(Directory, Compressed)…
属性不匹配directory,archive
sql2012安装图解教程
一条sql语句批量插入多条记录
sql2016下载
sql server2008 r2 密钥
sql2016安装密钥
sql2016安装图解教程
sql server 2012提示评估期已过的…

关于我们 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3