监控表空间的使用是DBA的日常工作之一,Oracle扩展表空间很简单,一般有扩展某个数据文件大小或增加新的数据文件两种办法。举例说明如下。
首先我们要获取某个表空间的数据文件信息:
select file_name,file_id,tablespace_name,bytes/1024/1024 from dba_data_files
order by file_name
根据file_id扩展某个数据文件大小:
alter database datafile 12 resize 13312m;
要注意的是,如果使用裸设备,一般要先查看LV是否足够,否则以上扩展命令可能出错,查看方式如下:
查看VG信息:
ERPDB1@/home/oracle>lsvg
rootvg
oraclevg
查看VG的LV:
ERPDB1@/home/oracle>lsvg -l oraclevg
oraclevg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
db_oravote raw 1 1 1 closed/syncd N/A
db_oraocr raw 1 1 1 [...]
很多软件开发过程中,没有注意合理规划索引,造成一个表上有N多个索引,为后续的维护和优化带来麻烦。因此有时候需要监控已有的索引是否在使用,oracle提供了监控索引是否使用的工具,很简单,简要介绍一下。
首先,我们如果是监控一个表上的所有索引,可以这样先生成监控的命令:
SQL> select 'alter index '||index_name||' monitoring usage;' from user_indexes where table_name=upper('mpaymentappl')
2 /
'ALTERINDEX'||INDEX_NAME||'MONITORINGUSAGE;'
------------------------------------------------------------
alter index IDX_MPAYMENTAPPL_BCODE monitoring usage;
alter index MPAYMENTAPPL_FLAGS monitoring usage;
alter index MPAYMENTAPPL_PAICODE monitoring usage;
然后执行这些脚本就开始监控了,监控信息可通过V$OBJECT_USAGE查看,通过used列可知道这个索引是否被使用:
SQL> select * from V$OBJECT_USAGE
2 /
INDEX_NAME TABLE_NAME MON USE START_MONITORING END_MONITORING
------------------------------ ------------------------------ [...]
在一个测试环境进行统计信息收集,结果提示被锁定:
SQL> exec dbms_stats.gather_table_stats('erp','balance');
BEGIN dbms_stats.gather_table_stats('cnderp','balance'); END;
*
ERROR at line 1:
ORA-20005: object statistics are locked (stattype = ALL)
ORA-06512: at "SYS.DBMS_STATS", line 13056
ORA-06512: at "SYS.DBMS_STATS", line 13076
ORA-06512: at line 1
Elapsed: 00:00:00.87
可以用以下命令解除锁定:
SQL> exec dbms_stats.unlock_table_stats('erp','balance');
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.47
SQL> [...]
Oracle Warehouse Builder (OWB) 是 Oracle 的一个综合工具,它提供了易用的图形环境,从而可以快速设计、部署和管理业务智能系统。
在一台已经安装了Oracle 10g的64位Linux下安装10.0.1版本OWB软件时,碰到了两个错误,后来查了些资料解决了,记录一下。
首先是OWB需要有自己的ORACLE_HOME,建议建立一个单独的路径来安装OWB,在安装到一半的时候会报调用isqlldr的错,日志信息如下:
INFO: /u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk:2: /u01/app/oracle/oracle/product/10.2.0/db_1/owb:/u01/app/oracle/oracle/product/10.2.0/db_1:/rdbms/lib/env_rdbms.mk: No such file or directory
INFO: /u01/app/oracle/oracle/product/10.2.0/db_1/owb/rdbms/lib/ins_rdbms.mk:23: target `ksms.s' given more than once in the same rule.
INFO: make: *** No rule to make target `/u01/app/oracle/oracle/product/10.2.0/db_1/owb:/u01/app/oracle/oracle/product/10.2.0/db_1:/rdbms/lib/env_rdbms.mk'. Stop.
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: [...]
Oracle除了用DBCA可以建库外,也可以手动来建立数据库,手动建库能够更了解数据库的一些启动过程和运作机制,对深入学习oracle 很有帮助,本文演示了10g下手动建库的流程和可能碰到的问题。
第一步:建立参数文件,这个文件可以从其他地方已有的数据库复制过来修改,也可以从init.ora的基础上修改,主要内容如下:
*.audit_file_dest='/u01/app/oracle/admin/erpwh/adump'
*.background_dump_dest='/u01/app/oracle/admin/erpwh/bdump'
*.compatible='10.2.0.1.0'
*.control_files='+DGWH/erpwh/control01.ctl','+DGWH/erpwh/control02.ctl','+DGWH/erpwh/control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/erpwh/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='erpwh'
*.db_recovery_file_dest='+DGWH'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=erpoptmXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=1073741824
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2147483648
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/erpwh/udump'
可以看到参数文件主要是指定了数据库名、跟踪文件的位置、控制文件的位置、数据块大小、内存参数等。Linux 系统中,该文件位置应在$ORACLE_HOME/dbs目录下。
第二步:建立密码文件,该文件用于sys用户以sysdba身份远程管理登录,这里的密码可以和建立数据库脚本理的sys密码不同,如果是远程以sysdba身份登录则需要使用这里的密码。密码文件和参数文件在相同的目录下:
[oracle@erpdevdb dbs]$ orapwd file=/u01/app/oracle/oracle/product/10.2.0/db_1/dbs/orapwerpwh password=erpwh entries=5
第三步:建立跟踪、日志等文件的路径:
[...]
技术组织
最近评论
历史归档
广告位

