Oracle常用命令及优化日志(不断更新)

1.超级管理员登录 

 

2.调整BLOB存储方式

3.调整oracle日志文件的大小

查询现有日志文件文件所在组以及存储路径和状态

SQL> select a.group#,a.status,b.member,a.bytes/1024/1024 from v$log a,v$logfile b where a.group#=b.group#;

通过以下SQL语句添加日志组

alter database add logfile group 4 ('d:\oracle\oradata\test\redo04.log') size 1024M;
alter database add logfile group 5 ('d:\oracle\oradata\test\redo05.log') size 1024M;
alter database add logfile group 6 ('d:\oracle\oradata\test\redo05.log') size 1024M;

对status为INACTIVE的日志组执行删除操作

alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;

可以手动切换日志文件

alter system switch logfile;

4.调整数据库内存大小

备份spfileorcl.ora文件,文件位于$ORACLE_HOME/database目录中

alter system set memory_max_target=92160M scope=spfile;
alter system set sga_max_size=71680M scope=spfile;
alter system set sga_target=XXM;

重启数据库

shutdown immediate;
startup

如果startup启动后报错,将备份的spfileorcl.ora文件恢复回去,并根据启动时候提示的错误重新修改,并重新启动

 

5.查询表的定义

select dbms_metadata.get_ddl('TABLE','table_name','OWNER') from dual;
例:select dbms_metadata.get_ddl('TABLE','GDB_ITEMS','SDE') from dual;(注意大小写)

6.查询空间索引

查询某个用户下的索引

select owner,index_name from dba_indexes where index_type='DOMAIN' and owner ='OWNERNAME';

​​​​​​​例:select index_name,index_type from user_indexes where table_name='GDB_ITEMS';
    select dbms_metadata.get_ddl('INDEX','A1_IX1','SDE') from dual;
    空间索引:index_type='DOMAIN'

 查询索引状态

select status,domidx_status,domidx_opstatus from dba_indexes where owner ='DBSJ' and index_name ='A225_IX1'

 批量执行空间索引删除操作

host notepad dropindex.sql

dropindex.sql内容如下:
drop index DBSJ.A226_IX1;
drop index DBSJ.A225_IX1;
drop index DBSJ.A176_IX1;
drop index DBSJ.A175_IX1;
drop index DBSJ.A174_IX1;
drop index DBSJ.A173_IX1;
drop index DBSJ.A168_IX1;
drop index DBSJ.A164_IX1;
drop index DBSJ.A162_IX1;
drop index DBSJ.A160_IX1;
​​​​​​​spoon off
spoon dropindex.sql

select 'drop index'||owner||'.'||index_name||';' from dba_indexes where owner ='DBSJ' and index_type ='DOMAIN';
select table_name,index_name from dba_indexes where owner ='DBSJ' and index_type='DOMAIN'

set head off

 

7.表空间扩容


--查看表空间大小
SELECT FILE_NAME as 数据文件,TABLESPACE_NAME as 表空间名称,AUTOEXTENSIBLE as 自动扩展,STATUS as 状态,MAXBYTES as 可扩展最大值,USER_BYTES as 已使用大小,INCREMENT_BY as 自动扩展增量 FROM dba_data_files

--扩展空间,将数据文件扩大至5000MB
 alter database datafile 'D:\DataBase\Test.DBF' resize 5000m;

--自动增长,表空间不足时增加200MB,最大扩展5000MB
 alter database datafile 'D:\DataBase\Test.DBF' autoextend on next 200m maxsize 5000m;  

--扩展无限大空间
alter database DATAFILE 'D:\DataBase\Test.DBF'  autoextend on maxsize unlimited;  


注意表空间大小限制 
表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定) 。即: 
4k最大表空间为:16384M 
8K最大表空间为:32768M 
16k最大表空间为:65536M 
32K最大表空间为:131072M 
64k最大表空间为:262144M

所以将maxsize设置为unlimited也并非能无限扩展,还受限于区块大小,即blocksize大小,如一般blocksize默认8k,数据文件大小最大也只能扩展到32GB。当然可以设置bigfile(大文件表空间),8k的blocksize表空间文件理论上最大可以扩展32TB,但是实际上受操作系统的文件系统限制。使用大文件表空间(bigfile tablespace)可以大幅度增强Oracle数据库的存储能力,简化数据库管理工作。与此同时,付出的代价是增加备份与恢复的时间。如果是中小型项目,数据量在TB级以内,建议使用小文件表空间。一个小文件表空间(smallfile tablespace)最多可以包含1022个数据文件(datafile)。详细可看Oracle物理文件限制大小表格Physical Database Limits 
添加表空间数据文件sql脚本如下:

--增加数据文件,TestTablespace是这里测试使用的表空间名称
alter tablespace TestTablespace add datafile 'D:\DataBase\Test2.DBF' size 1024m; 

实例:

调整表空间大小

使用户对表空间具有不限制的空间使用权!!!

8.删除用户及表空间

--查看用户和表空间的状况
select username,default_tablespace from dba_users
select tablespace_name,max_size/1024/1024 from dba_tablespaces;

--删除用户和表空间
drop user CTRLPOINT cascade;
drop tablespace TB_CTRLPOINT including contents and datafiles;

9.Oracle数据库保留字查询

select * from v$reserved_words where keyword like 'L%' order by keyword desc;

10.创建用户、表空间并授权

创建表空间

SQL> create tablespace tb_kone datafile 'D:\app\zh\oradata\orcl\tb_kone.dbf'size
 1024m autoextend on next 32m maxsize 2048m;

创建用户

SQL> create user kone identified by kone;
SQL> alter user kone default tablespace tb_kone;

给用户授予权限

GRANT CONNECT TO kone;
GRANT RESOURCE TO kone;
GRANT DBA TO kone;
GRANT UNLIMITED TABLESPACE TO kone;
GRANT create any table TO kone;
GRANT select any table TO kone;
GRANT drop any table TO kone;
GRANT delete any table TO kone;
GRANT insert any table TO kone;
GRANT update any table TO kone;

--Or全部权限
grant all privileges to kone;

提交

11.监听访问及管理

监听访问

启动、关闭

查看端口

12.Oracle连接到空闲例程

1、
 SQL>startup pfile='D:\app\Administrator\admin\agriculture\pfile\init.ora.10182016104423' (其中"init.ora.10182016104423"视具体Oracle安装位置和实例确定)。

2、创建spfile

   SQL>create spfile from 
       pfile='D:\app\Administrator\admin\agriculture\pfile\init.ora.10182016104423';

3、重新启动数据库

   SQL>shutdown immediate
   SQL>startup

13.批量复制GUID值

SQL> update SDE.TEST set guidtest = substr(sys_guid(), 1, 8)||'-'||substr(sys_gu
id(), 9, 4)||'-'||substr(sys_guid(), 13, 4)||'-'||substr(sys_guid(), 17, 4)||'-'
|| substr(sys_guid(), 20, 12);

已更新4行。

SQL> commit;

提交完成。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值