Database & OS
—操作系统与 数据库的使用、管理、优化、故障分析及解决方法
(注意,有些细节与9i下面不同)
[主服务器]
一、将主库设为归档模式
1.备份初始化参数文件
sql> create pfile from spfile;
2.配置归档日志的名称格式
sql>alter system set log_archive_format='%S_%T_%R.log' scope=spfile;
在10G中......
数据库中的物化视图昨天出了问题,想要删除重建,但返回一个奇怪的错误提示:
drop MATERIALIZED VIEW NEW_CATALOG
ORA-01422: exact fetch returns more than requested number of rows
想来想去不明白,怎么删快照,会出现这个问题呢?
我检查了 us......
在使用exp/imp进行数据迁移时,本希望把数据导入另一个表空间,但导入之后却发现数据表还是放在了原来的表空间中。
产生这种后果的原因很简单:导入操作所使用的那个用户具有DBA权限(在数据导入时会导入到原表空间)!
下面的测试可以模拟上述场景:
1.创建用户及授权,指定默认表空间为 USERS :
TESTDB > create u......
linux下,swap交换分区是很重要的,如果安装操作系统时,swap设置不当,我们可以用如下方法来增加:
1、检查当前的分区情况(使用free-m或cat /proc/swaps ):
[root@Yy231 ~]# free -m
total used free shared buffers cached
Mem: 6081 6061 19 0......
在下的生产环境全部是linux系统,
但由于很多朋友常常问我为何在windows操作系统下面,无法完全卸载oracle,安装其它版本会出现各种问题,
所以在这里讲一下应该注意的步骤:
1、停止所有Oracle服务
2、删除注册表中的所有关于Oracle项
(1)在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle......
上周准备使用Oracle的DataGuard做数据库服务器的Standby热备。于是将某台数据库打自动归档打开。
过几天后准备用RMAN的完全备份来复制目标数据库的时候,发现归档日志已经有很多了!
心中想反正要FullBack一次,就手动删除的硬盘上的归档日志。
结果,问题出现了:
在使用rman备份时,由于删除了还没有备份过的归档日志文件(其实......
服务器“暴露”在外网是比较危险的事情,但有时候又是必须的!
因此,端口的控制就十分的重要了,一个基本原则是,把不必要的端口统统关掉!
下面是oracle数据库常用到的WEB HTTP 端口:
66 Oracle SQL*Net
80 Hyper Text Transfer Protocol (HTTP)
81 HTTP Proxy......
大家应该遇到过这样的情况:
拥有DBA权限的用户,在存储过程中却无权创建一张简单的表(我在一些技术论坛上常常看到有人咨询这类问题):
SQL> conn eric/eric;
Connected.
SQL> select * from dba_role_privs where grantee='ERIC';
GRANTEE......
Exp命令估计是一个oracleDBA职业生涯中用得最多的命令之一。
使用当中,常常出现一个比较“经典”的问题:
Exp一个表的时候,系统提示exp-00003 错误!
$ oerr exp 00003
00003, 00000, "no storage definition found for segment(%lu, %lu)"
// *Cau......
Oracle10g在性能、稳定性及可维护性方面比上一版本有了不错的提升,但使用中也出现了一些新的问题。
Oracle从9i开始推出了FlashBack的概念,但有两个限制:
1、仅支持行级闪回,即只能在表的行上使用闪回查询检索过去某个时间点的数据。
2、不能闪回DDL操作,比如删除表的操作。
从Oracle10g开始,Oracle引入了f......
问题的提出:
由于公司某合作应用需要读取发布系统的数据,所以在相应的数据库服务器上创建了85数据表的物化视图。在物化视图互相间耦合程度比较高的时候,不同的物化视图间,由于刷新方式及时间的不同,将会引起的数据完整性的问题。
对于这种情况,可以将关联的物化视图放在同一个刷新组中,作为一个事务进行刷新。
DBMS_REFRESH软件......
Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.
下面介绍一下关于sequence 的生成,修改,删除等常用的操作:
1. 创建 Sequence
使用如下命令新建sequence(用户需要有CREATE SEQUENCE 或者CREATE ANY SEQUENCE权限)......
Decode()是Oracle提供的很常用、功能强大的函数,目前仅ORACLE独家为SQL提供,其他数据库厂商的SQL都暂无此功能。
由于在业务逻辑中,常会用到诸如if-then-else 或 choose case 之类的流控制语句进行选择判断,根据值的不同,实现相应的逻辑。
使用Decode()函数,可简单在SQL中实现上述功能,省略程序中使用流控制......
昨天有人问来我,Oracle的JOB在设定完next_date和interval之后,到底是什么时候决定下一次运行时间的。
我觉得可以归纳成以下几个问题。
1.假设我们的JOB设定第一次运行的时间是12:00,运行的间隔是1小时,JOB运行需要耗时30分钟,那么第二次运行是在13:00还是13:30?
2.如果是在13:00那是不是说明只要JOB......
SVRMGR> select * from dba_jobs;
初始化相关参数job_queue_processes
alter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;
job_queue_interval = 10 //调度作业刷新频率秒为单位
DBA_J......
1、尽量不要使用like '%..%'
2、对于 like '..%..' (不以 % 开头),Oracle可以应用 colunm上的index
3、对于 like '%...' 的 (不以 % 结尾),可以利用 reverse + function index 的形式,变化成 like '..%' 代码
建测试表和Index。
注意:重点在......
在SQL语句中,常常用会对时间(或日期)进行一些处理,下面是比较通用的一些语句:
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysda......
如何杀掉带锁的Oracle进程
经常会遇到一个问题是:在ORACLE中,状态已被置为"killed"的进程长时间锁定系统资源,不释放,有一个比重启数据库更好的方法,就是在操作系统级强行杀掉那些进程。
1.下面的语句用来查询哪些对象被锁:
col object_name for a30
col machine for a20
select obj......
1、如果使用台式机的朋友,可能希望系统启动以后,小键盘自动打开,方便输入数据密码
2、如果使用笔记本的朋友,可能不希望启动系统时,小键盘自动打开,因为在本本上打开小键盘,会影响正常字母的输入。
解决以上困惑有很多方法,下面列举几种,以供参考(第一种情况和第二种情况解决时,互逆即可):
一、系统启动后,弹出登陆框时,不要输入用户名及密码。先打开Num......