数据库
首页 > 数据库> > 达梦数据库DCA学习之路——常见语句示意

达梦数据库DCA学习之路——常见语句示意

作者:互联网

 一、参数设置

--兼容oracle设置,静态参数,重启生效。

alter system set 'COMPATIBLE_MODE' =2 SPFILE;

--创建的表是否为list表,当前会话生效。动态参数。

alter session set 'LIST_TABLE'= 0;

--控制文件转换为文本文件。

 ./dmctlcvt TYPE=1 SRC=/dm8/DAMENG/dm.ctl DEST=/dm8/DAMENG/dm.txt

 

 select * from v$bufferpool;

-- 修改缓冲区buffer参数

 alter system set 'BUFFER'=500 spfile;

-- 执行commit不会对缓冲区刷盘,数据检查时才会刷盘。

 --sql缓冲区大小修改

 alter system set 'CACHE_POOL_SIZE'=300 spfile;

 select * from v$cacheitem;

  select * from v$cachesql;

   select * from v$cachepln;

    select * from v$cachers;

--字典缓冲区:

select * from v$dynamic_tables t where T.NAME like '%DICT%';

SELECT * FROM SYS."V$DICT_CACHE_ITEM";

select * from v$parameter where name like 'DICT_BUF_SIZE';

--内存池大小。

select * from v$mem_pool;

--调整排序区大小

alter system set 'SORT_BUF_SIZE'=100 spfile;

--查看进程

select * from v$process;

select * from v$threads;

 

二、表空间管理

system roll main temp hmain

 

select * from v$parameter t where name like 'TEMP%';

--设置临时表空间大小

alter system set 'TEMP_SIZE'=100 SPFILE;

 

--创建表空间;页大小的4096倍

create TABLESPACE tbs DATAFILE 'TBS.DBF' SIZE 36;

alter TABLESPACE tbs RENAME DATAFILE 'TBS01.DBF' TO '/dm8/data/DM/TBS/TBS01.DBF';

 

create table t_test(id int,name VARCHAR(20)) TABLESPACE tbs;

insert into t_test(id, name) values(1, 'aaa');

insert into t_test(id, name) values(2, 'aaa');

insert into t_test(id, name) values(3, 'aaa');

insert into t_test(id, name) values(4, 'aaa');

insert into t_test(id, name) values(5, 'aaa');

commit;

select * from SYSDBA.T_TEST;

 

--迁移表空间数据文件:

alter tablespace tbs offline;

alter TABLESPACE tbs RENAME DATAFILE 'TBS01.DBF' TO

'/dm8/data/DM/TBS/TBS01.DBF';

alter TABLESPACE tbs RENAME DATAFILE 'TBS02.DBF' TO

'/dm8/data/DM/TBS/TBS02.DBF';

alter tablespace tbs online;

 

三、联机日志

--DM 数据库联机日志自动切换,不能手工切换。

--数据字典:

select * from v$rlogfile;

select * from v$rlog;

--修改联机日志大小

ALTER database RESIZE LOGFILE '/dm8/DAMENG/DAMENG01.log' TO 300;

ALTER database RESIZE LOGFILE '/dm8/DAMENG/DAMENG02.log' TO 300;

--修改联机日志文件路径(迁移联机日志文件)

alter database mount;

alter database RENAME LOGFILE 'DM01.log' TO '/dm8/data/DM/REDO/DM01.log';

alter database RENAME LOGFILE 'DM02.log' TO '/dm8/data/DM/REDO/DM02.log';

alter database RENAME LOGFILE 'DM03.log' TO '/dm8/data/DM/REDO/DM03.log';

alter database open;

 

四、密码策略

select * from v$parameter where name ='PWD_POLICY';

alter SYSTEM SET 'PWD_POLICY'=15 BOTH;

--创建用户

--创建用户(注意特殊符号加引号)

create user hrtest IDENTIFIED by "Dameng@123" DEFAULT TABLESPACE TBS;

 

五、用户管理

--用户锁定和解锁:

alter user hr ACCOUNT UNLOCK;

alter user hr ACCOUNT LOCK;

--修改用户的默认表空间:

alter user hr DEFAULT TABLESPACE dmtbs;

 

--删除用户:

drop user if EXISTS hr;

drop user if EXISTS hr CASCADE ;

 

六、权限管理

grant create table to hrtest ;

--赋予对象查询权限

grant select on dmhr.employee TO hrtest;

--回收权限

revoke CREATE TABLE FROM hrtest;

revoke select on dmhr.employee  FROM hrtest;

--查看当前用户权限。

select * from session_privs;

--赋予权限精确到列

grant select (employee_id,employee_name) on dmhr.employee to hrtest;

select employee_id,employee_name FROM dmhr.EMPLOYEE;

 

--开启其他模式的授予权限

alter SYSTEM set 'ENABLE_DDL_ANY_PRIV' = 1 both;

grant create any table to hrtest;

grant create any index to hrtest;

 

七、角色管理

select * from dba_roles;

create ROLE r1;

grant create table to r1;

grant r1 TO hrtest;

--角色禁用启用

sp_set_role('R1',0) --禁用

 

--赋予权限可转授

grant select on "DMHR"."EMPLOYEE" to "r2" WITH grant option;

--回收时加上CASCADE

revoke select on dmhr.employee from r2 CASCADE;

 

八、模式管理

select * from SYSOBJECTS t where t."TYPE$" ='SCH'; --查看模式

select * from SYSOBJECTS t where t."SUBTYPE$" ='USER'; --查看用户

--查看模式和用户的关系

select a.id, a.name, b.id, b.name

from SYSOBJECTS a, SYSOBJECTS b

where a.pid = b.id and a."TYPE$" = 'SCH';

 

--创建模式

create schema hrtest01 AUTHORIZATION HRTEST;

create table hrtest01.t_test(id int ,name VARCHAR(20));

--切换模式

set SCHEMA dmhr;

--删除模式

drop SCHEMA IF EXISTS HRTEST01;

drop SCHEMA IF EXISTS HRTEST01 CASCADE; --级联删除模式下对象,生产环境慎用。

 

九、管理表

 select * from v$parameter t where name ='LIST_TABLE';

 

 --创建表

 create TABLE hrtest.t_testpid(pid int,pname VARCHAR,sex BIT,logtime DATETIME)

 tablespace TBS;

 --使用 CTAS 方式创建表(只复制表结构,不复制约束、主外键等信息):

create table hrtest.t_emp as select * from DMHR.EMPLOYEE where 1=0;

l--ike 创建表(只复制表结构,不复制约束、主外键等信息):

create table hrtest.t_emp01 like DMHR.EMPLOYEE;

 

--添加字段

alter TABLE hrtest.T_TESTPID ADD COLUMN email VARCHAR(20);

--修改字段类型:

alter table hrtest.t_testpid modify email varchar(50);

--删除字段:

alter table hrtest.t_testpid drop logtime;

--对字段添加默认值(大表不建议添加字段时给默认值):

alter table hrtest.t_testpid add COLUMN logtime datetime DEFAULT sysdate;

 

十、数据的导入

 

SQL> start /dm8/backup/JOB.sql

SQL> ` /dm8/backup/JOB.sql

 

十一、管理约束

约束类型:

NOT NULL:非空约束

UNIQUE:唯一约束

PRIMARY KEY:主键约束 (唯一约束+非空约束)

FOREIGN KEY:外键约束

CHECK:检验约束

 

 

select * from hrtest.t_testpid;

alter table hrtest.t_testpid modify pname not null;--非空约束

alter table hrtest.t_testpid add CONSTRAINT uk_testpid_email unique (email);--唯一键

alter table HRTEST.T_TESTPID ADD CONSTRAINT pk_pidtest_pid PRIMARY KEY(pid);--主键

alter table HRTEST.T_TESTPID ADD CONSTRAINT chk_pidtest_salary CHECK (salary>=2000);--检查

alter table hrtest.t_test add CONSTRAINT fk_test_id FOREIGN KEY(id) REFERENCES hrtest.t_testpid(pid);--外键约束(外键引用两一张表的主键或者唯一键)

 

--约束的禁用和启用、删除

alter table hrtest.t_test disable CONSTRAINT fk_test_id;

alter table hrtest.t_test enable CONSTRAINT fk_test_id;

alter table hrtest.t_test drop CONSTRAINT fk_test_id;

 

--管理索引

create index ix_emp01_employeename ON HRTEST.T_EMP01(EMPLOYEE_NAME);--创建

 

alter index HRTEST.IX_EMP01_EMPLOYEENAME MONITORING USAGE; --开启索引监控

alter index HRTEST.IX_EMP01_EMPLOYEENAME NOMONITORING USAGE; --关闭索引监控

select * from v$object_usage;

alter index HRTEST.IX_EMP01_EMPLOYEENAME rebuild ONLINE;--索引重建

drop index HRTEST.ix_emp01_employeename;--删除索引

 

十二、视图管理

create VIEW hrtest.v_emp

as

SELECT a.EMPLOYEE_ID,a.EMPLOYEE_NAME,a.EMAIL,a.PHONE_NUM

FROM dmhr.employee a

where a.DEPARTMENT_ID=1001;

 

十三、数据备份恢复

--dmrman备份

RMAN> backup database '/dm8/DM/dm.ini';

RMAN> restore database '/dm8/DM/dm.ini' from backupset  '/dm8/backup/****';

RMAN> recover database '/dm8/data/DM/dm.ini' with archivedir '/dm8/arch';

RMAN> recover database '/dm8/data/DM/dm.ini' update db_magic;

 

 

--逻辑备份

 ./dexp  SYSDBA/SYSDBA directory=/dm8/backup/ file=fulldexp.dmp log=fulldexp.log full=y

 ./dimp sysdba/SYSDBA directory=/dm8/backup/ file=fulldexp.dmp log=fulldexp.log full=y

 

--执行完全检查点

checkpoint(100); --执行完全检查点

 

标签:语句,--,DCA,hrtest,达梦,dm8,table,alter,select
来源: https://www.cnblogs.com/zongwen/p/15913678.html