您的位置:首页 > 数据库 > Oracle

oracle数据库开发的一些经验积累(二)

2005-03-02 08:55 615 查看
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';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息