oracle9i审计功能的开启和审计策略的设定方法
操作系统:solaris9数据库:oracle9i1、查看审计功能是否打开[@more@]SQL> show parameter audit;NAME TYPE VALUE------------------------------------ ----------- ------------------------------audit_file_dest string ?/rdbms/auditaudit_sys_operations boolean FALSEaudit_trail string FALSEtransaction_auditing boolean TRUE由于audit_trail的value值为FALSE,说明审计功能没有打开2、打开审计功能SQL> alter system set audit_trail='TRUE' scope=spfile;System altered.3、重新启动数据库使审计功能生效SQL> conn /
在防火墙上开发Oracle端口的问题
需要和Oracle数据库做DBLink,尝试连到服务器时怎么也连不通,检查了网络、检查了端口1521,都没有问题,可是就是连不通。整理解决方法 如下: Oracle接收外部连接的机制比较特别,Oracle客户端连接服务器,首先去找1521监听端口,服务器的1521监听端口再向server process进程发出请求,并返回一个随机端口,返回给客户端,客户端再来连接这个端口。[@more@]所以实际上Oracle的对外端口是不固定的,于是在Windows平台上的这个问题成了一大难题(Unix平台系统会自动解决这个问题)。对于这个棘手的问题,除了关闭防火墙外当然还有其他好
AIX上oracle导出备份EXP-00056: 遇到 ORACLE 错误 600
最近在windows客户端做Oracle数据库exp倒出数据时报错。server端为AIX5.3,ORACLE 10g,报错的详细信息如下:###############################################C:>exp ldgui/ldgui@21 file=ld.dmpExport: Release 10.2.0.1.0 - Production on 星期五 2月 5 23:01:17 2010Copyright (c) 1982, 2005, Oracle. All rights reserved.[@more@]连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining options已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将
Dataguard配置Step by Step
链接:http://www.eygle.com/archives/2004/10/dataguard-step-by-step.html 1.主节点备份并生成备用数据库控制文件 设置主节点为force Logging模式(为了双向切换,建议备用节点也设置为force logging模式)ALTER DATABASE FORCE LOGGING;设置主节点为归档模式[@more@]登陆主节点,进行数据库备份,并生成备用数据库控制文件Last login: Mon Aug 9 16:46:47 2004 from 172.16.32.65 [root@standby root]# su - oracle [oracle@standby oracle]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.4.0 - Production on Mon Aug 16 10:
TOAD查看执行计划表
如果是默认安装TOAD,在查看执行计划时会报一个错:ORA-02404: 未找到指定的计划表[@more@]创建对应的表CREATE TABLE TOAD_PLAN_TABLE ( STATEMENT_ID VARCHAR2 (32), TIMESTAMP DATE, REMARKS VARCHAR2 (80), OPERATION VARCHAR2 (30), OPTIONS VARCHAR2 (30), OBJECT_NODE VARCHAR2 (128), OBJECT_OWNER VARCHAR2 (30), OBJECT_NAME VARCHAR2 (30), OBJECT_INSTANCE NUMBER, OBJECT_TYPE VARCHAR2 (30), SEARCH_COLUMNS NUMBER, ID NUMBER, COST N
Oracle 释放过度使用的Undo表空间
Oracle 释放过度使用的Undo表空间故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃;问题分析:产生问题的原因主要以下两点:1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况;2. 有较大事务没有收缩或者没有提交所导制;说 明:本问题在ORACLE系统管理中属于比较正常的一现象,日常维护多注意对磁盘空间的监控。备 份: (如果没有在线事务,可以不做,关闭监听)[@more@]$>exp vas/vas file=/opt/oracle/data_1.dmp,/opt/oracle/data_2.dmp log=/opt/oracle/date.log owner=vas rows=
.ora文件、.dbf文件和.dat文件的区别
数据文件的扩展名是ora,dbf,dat的,有什么区别?只是通过扩展名来标识文件的类型而已,对于数据文件不管是ora/dat/dbf,都是一样的,没有什么区别。[@more@] .dbf-数据文件, .tmp-临时文件, .log-重作日志文件(redo log file), .ctl-控制文件.ora-参数文件, .dat-Oracle系统文件实在不行可以rename:SQL> alter tablespace test_data_16k offline;Tablespace alteredExecuted in 0.235 secondsSQL> alter database2 rename file 'f:oracleoradatasdusuntest_data_16k.ora'3 to 'f:oracleoradatasdusuntest_data_16k.dbf';Data
通过SQLNET.ora文件限制Ip地址访问
在Oracle数据库中,我们可以通过SQLNET.ora文件实现地址访问限制。在SQLNET.ora文件中设置以下参数可以实现IP访问限制:[@more@]tcp.validnode_checking=yes tcp.invited_nodes=(ip1,ip2......) tcp.excluded_nodes=(ip1,ip2......) 在未设置这些参数前,测试数据库可以正常访问:D:>tnsping eygleTNS Ping Utility for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-1月 -2008 14:52:52Copyright (c) 1997, 2006, Oracle. All rights reserved.已使用的参数文件,:C:oracle10.2.0networkadminsqlnet.ora已使用 TNSNAMES
简单冷备份恢复操作步骤
冷备份数据必须是数据库不在open状态下。 以下步骤会给出详细的过程: 1): 关闭DB : shutdown immediate;[@more@]2):copy oradata目录下的所有文件, 包括数据文件, 控制文件,redo,等,还需要copy 密码文件 在目录ora92下 的database 中的pwd 文件.全部copy到一个安全目录中。在sql 下可以直接加一个 host 然后使用dos命令。如host copy ............. 3):如果是操作系统的重新安装,只要是同样系统,同样数据库版本,是可以做冷备恢复。一下谈的是系统的重新安装后的步骤。 4):正常安装oracle软件(之前在pub上
教你手工创建数据库的全部脚本及说明
系统环境: 1、操作系统:Windows 2000 Server,机器内存128MB。 2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版。 3、安装路径:D:Oracle。 [@more@]建库步骤: 1、手工创建相关目录: D:Oracleadmin est D:Oracleadmin estadhoc D:Oracleadmin estdump D:Oracleadmin estcdump D:Oracleadmin estcreate D:Oracleadmin estexp D:Oracleadmin estpfile D:Oracleadmin estudump D:Oracleoradata est D:Oracleoradata estarchive2、手工创建初始化启动参数文件:D:Oracleadmin estpfileinittest.ora。 3、手工创建D:OracleOra81
在sql语句中替换Not In 的方法
前言: 今天在写一条sql查询语句,其需要从一个表A中返回所有A不再表B中的结果集,当然,这种实现最方便的方法就是用NOT IN。 如:select a.* from a where a.id not in (select id from b where…..) [@more@]我们大家都知道很多sql方面的文章都建议大家尽量不要使用NOT IN的方法,因为这种方法的效率不高。那有没有替代的办法呢?(声明因为当时的情况要求不能使用储存过程,所以只有写sql语句)和同事实验了一下,结果用以下方法实现了。 目的: 替换NOT IN 方法。 说明: 在单条SQL语句中,不使用储存过程,不使用临时表。使用存储过
SQL*PLUS命令的使用大全
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。[@more@]我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便
冷备份+归档日志的恢复
论坛上有人问起,能用以前的冷备份+冷备份以来的所有归档日志将数据库恢复到当前状态么?原帖地址:http://www.itpub.net/676840.htmlref: http://ningoo.itpub.net/post/2149/232909[@more@]冷备份是一致的,如果冷备份包含所有的datafile,controlfile,online redo logfile,并且将所有的这些文件全部restore后再来做recover,是不行的,oracle会告诉你,当前数据库是一致的,无须recover。首先关闭数据库,做一个冷备份SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。然后启动到mount状态,试着做r
修改字符集
1.备份数据库2.关闭数据库:shutdown immediate;[@more@]3.启动mount状态:startup mount;4.启动session 限制:ALTER SYSTEM ENABLE RESTRICTED SESSION;5.关闭一些参数的设置:SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;6.打开数据库:alter database open;7.修改数据库字符集:ALTER DATABASE CHARACTER SET ZHS16GBK;
RMAN从无到有小测试
1.搭建测试环境OS: winxp 建立2个数据库:test2006 test2007确保2库正常运行sqlplus test/test@test2006sqlplus test/test@test2007[@more@]2. 在test2007上建立恢复目录set oracle_sid=test2007sqlplus /nologconn /as sysdbashow parameter instance ( 确定登录的数据库是test2007)create tablespace cattbs datafile 'd:oracleoradatacat.dbf' size 15M;create user rman identified by rman default tablespace cattbstemporary tablespace temp;grant connect,resource,recovery_catalog_owner to rman;connect catalog rman/rman@tes
一个生产库的DBA,你每天要做什么?
目录 1, 日常维护程序 A. 检查已起的所有实例 B. 查找一些新的警告日志 C. 检查DBSNMP是否在运行 D. 检查数据库备份是否正确 E. 检查备份到磁带中的文件是否正确 F. 检查数据库的性能是否正常合理,是否有足够的空间和资源 G. 将文档日志复制到备份的数据库中 H. 要常看DBA用户手册 [@more@]2、晚间维护程序 A.收集 VOLUMETRIC 的数据 3、每周维护工作 A. 查找那些破坏规则的OBJECT B. 查找是否有违反安全策略的问题 C. 查看错误地方的SQL*NET日志 D. 将所有的警告日志存档 E. 经常访问供应商的主页 4.月维护程序 A. 查看
rman总结
rman作为oracle备份最为方便的工具,以下就总结几条常用的命令,希望能方便大家,也希望可以申请授权: 1、首先使用rman前,需要建一个目录数据库[@more@]2、create tablespce rman datafile '/data/oradata/test/rman.dbf' size 20m; 3、create user rman identified by rman default tablespace rman temporary tablespace temp; 4、grant connect,resource,recovery_catalog_ower to rman; 以上建库和建用户基本成功,接着: 1、rman target sys/manager@ora8 catalog rman/rman@rman 2、register database (同步数据库,如果数据库做了
Oracle数据库备份与恢复的三种方法
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份[@more@]一、 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、 简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象
在Oracle网络结构中解决连接问题
最近看到好多人说到tns或者数据库不能登录等问题,就索性总结了下面的文档。 首先来说Oracle的网络结构,往复杂处说能加上加密、LDAP等等。。这里不做讨论,重点放在基本的网络结构也就是我们最常用的这种情况 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOMEnetworkadmin目录下。 [@more@]重点:三个文件的作用和使用 #----------------------- sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串,
将非分区表转换为分区表
很多数据库在设计时未能很好的规划数据库的容量, 导致在某些情况下, 导致一个表中存放了数百万, 数千万甚至上亿条记录, 维护起来非常的不便, 下面介绍一种将非分区表转换为分区表的方法.[@more@]testtb_nopart是一个非分区表, 基本信息如下:SQL> desc testtb_nopart Name Null? Type ----------------------------------------- -------- ---------------------------- TIMESTAMP DATE OWNER VARCHAR