this is a extra element for clear the floated element
Oracle数据库开发的一些经验积累(三)
  • 12/31
  • 2008
入门基础 | Oracle 3609 次查看
  1、分析表

  analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;

  2、表空间管理和用户管理

  --查看表空间和数据文件

  select file_name,tablespace_name,autoextensible from dba_data_files;

  --数据表空间

  CREATE TABLESPACE USER_DATA

  LOGGING

  DATAFILE 'D:\ORACLE\ORADATA\ORCL\test.DBF' SIZE 50m REUSE ,

  'c:\USERS01112.DBF' SIZE 50m REUSE

  AUTOEXTEND

  ON NEXT

  1280K MAXSIZE

  16383M EXTENT MANAGEMENT LOCAL

  --修改表空间数据文件的路径

  ALTER TABLESPACE app_data

  RENAME

  DATAFILE '/DISK4/app_data_01.dbf'

  TO

  '/DISK5/app_data_01.dbf';

  ALTER DATABASE

  RENAME FILE '/DISK1/system_01.dbf'

  TO '/DISK2/system_01.dbf';

  --临时表空间

  CREATE TEMPORARY

  TABLESPACE

  USER_DATA_TEMP TEMPFILE 'D:\TEMP0111.DBF'

  SIZE 50M REUSE AUTOEXTEND

  ON NEXT

  1024K MAXSIZE

  16383M EXTENT MANAGEMENT LOCAL UNIFORM

  SIZE 1024K

  --增加数据文件

  ALTER TABLESPACE

  USER_DATA

  ADD DATAFILE 'c:\USERS01113.DBF' SIZE 50M;

  ALTER TABLESPACE USER_DATA

  ADD DATAFILE 'c:\USERS01114.DBF'

  SIZE 50M

  AUTOEXTEND ON

  ;

  --删除表空间

  DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

  --修改表空间的存储参数

  ALTER TABLESPACE tablespacename

  MINIMUM EXTENT 2M;

  ALTER TABLESPACE tablespacename

  DEFAULT STORAGE (

  INITIAL 2M

  NEXT 2M

  MAXEXTENTS 999 );

  --表空间联机/脱机/只读

  ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY;

  --修改数据文件大小

  ALTER DATABASE

  DATAFILE 'c:\USERS01113.DBF' RESIZE 40M;

  --创建用户、赋予权限

  CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BY

  USER_DATA

  DEFAULT

  TABLESPACE USER_DATA

  TEMPORARY

  TABLESPACE USER_DATA

  ACCOUNT UNLOCK;

  GRANT CONNECT TO USER_DATA;

  GRANT RESOURCE TO USER_DATA;

  3、表的管理

  --创建表

  CREAE TABLE TABLENAME

  (COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)

  (COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);

  --建表的索引存储分配

  CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX

  STORAGE(INITIAL 100K NEXT 100K)

  TABLESPACE indx,

  last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,

  dept_id NUMBER(7))

  TABLESPACE data;

  --修改表的存储分配

  ALTER TABLE tablename

  PCTFREE 30

  PCTUSED 50

  STORAGE(NEXT 500K

  MINEXTENTS 2

  MAXEXTENTS 100);

  ALTER TABLE tablename

  ALLOCATE EXTENT(SIZE 500K

  DATAFILE '/DISK3/DATA01.DBF');

  --把表移到另一个表空间

  ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

  --回收空闲的空间(回收到High-water mark)

  全部回收需要TRUNCATE TABLE tablename

  ALTER TABLE tablename

  DEALLOCATE UNUSED;

  --删除表(连同所用constraint)

  DROP TABLE tablename

  CASCADE CONSTRAINTS;

  --给表增加列

  ALTER TABLE TABLENAME

  ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

  --删除表中的列

  ALTER TABLE tablename

  DROP COLUMN columnname;

  ALTER TABLE tablename

  DROP COLUMN columnname

  CASCADE CONSTRAINTS CHECKPOINT 1000;

  --标记列不可用

  ALTER TABLE tablename

  SET UNUSED COLUMN columnname

  CASCADE CONSTRAINTS;

  --删除标记为不可用的列

  ALTER TABLE tablename

  DROP UNUSED COLUMNS CHECKPOINT 1000;

  --继续删除列选项

  ALTER TABLE tablename

  DROP COLUMNS CONTINUE CHECKPOINT 1000;

  --把表放到BUFFER_POOL中去

  ALTER TABLE tablename

  STORAGE (BUFFER_POOL RECYCLE);

  --避免动态分配EXTENT

  ALTER TABLE tablename ALLOCATE EXTENT;

  --把表放到CACHE中去

  ALTER TABLE tablename ALLOCATE CACHE/NOCACHE;

  4、索引管理

  --创建索引

  CREATE INDEX indexname ON TABLENAME(COLUMNNAME);

  CREATE INDEX indexname ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

  --重新建立索引

  ALTER INDEX indexname REBUILD TABLESPACE

  TABLESPACE;

  --索引分配参数

  ALTER INDEX indexname

  STORAGE(NEXT 400K

  MAXEXTENTS 100);

  --释放索引空间

  ALTER INDEX indexname

  ALLOCATE EXTENT (SIZE 200K

  DATAFILE '/DISK6/indx01.dbf');

  ALTER INDEX indexname

  DEALLOCATE UNUSED;

  --重新整理索引表空间碎片

  ALTER INDEX indexname COALESCE;

  --删除索引

  DROP INDEX indexname

  --把索引放到BUFFER_POOL中

  ALTER INDEX cust_name_idx

  REBUILD

  STORAGE (BUFFER_POOL KEEP);

  5、约束管理

  --建立主键

  ALTER TABLE TABLENAME

  ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)

  --使约束无效

  ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT constraintname;

  ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT constraintname;

  --删除约束

  ALTER TABLE tablename

  DROP CONSTRAINT constraintname;

  DROP TABLE tablename CASCADE CONSTRAINTS;(删除表后将所用的外键删除)

  --给列增加缺省值

  ALTER TABLE TABLENAME

  MODIFY columnname

  DEFAULT(value) NOT NULL;

  --给表增加外键

  ALTER TABLE

  tablename

  ADD CONSTRAINT

  constraintname

  FOREIGN KEY(column) REFERENCES table1name(column1);

  6、安全策略

  --加密传输

  把客户端环境变量ora_encrypt_login设为true

  把服务器端参数dblink_encypt_login设为true

  --数据库管理员安全策略

  a、建库后立即修改SYS/SYSTEM的口令(9.2后必须修改其口令)

  b、只有数据库管理员才能以SYSDBA登录系统

  c、建立不同角色的管理员,分配不同的权限

  比如:对象创建于维护

  数据库的调整与维护

  创建用户分配角色

  启动关闭

  恢复备份

  --应用开发者的安全策略

  a、开发者的特权只能在测试开发的数据库中赋予权限

  b、自由开发者、受控开发者

  自由开发者:create table\index\procedure\package

  受控开发者:没有以上权限

  7、日志文件管理

  --切换日志文件

  ALTER SYSTEM SWITCH LOGFILE;

  --增加日志文件

  ALTER DATABASE ADD LOGFILE

  ('/DISK3/log3a.rdo',

  '/DISK4/log3b.rdo') size 1M;

  --增加日志成员

  ALTER DATABASE ADD LOGFILE MEMBER

  '/DISK4/log1b.rdo' TO GROUP 1

  '/DISK4/log2b.rdo' TO GROUP 2;

  --删除日志文件

  ALTER DATABASE DROP LOGFILE GROUP 3;

  --删除日志成员

  ALTER DATABASE DROP LOGFILE MEMBER '/DISK4/log2b.dbf';

  --清除日志文件内容

  ALTER DATABASE CLEAR LOGFILE '/DISK3/log2a.rdo';