掌握命令行和图形化两种方式安装 DM 数据库,了解安装参数和 root 脚本的执行方式。
ldd --version、uname -r、lscpu、free -m、df -hgroupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba passwd dmdba
mkdir /dm chown dmdba:dinstall /dm
DMInstall.binxhost +
su - dmdba
export DISPLAY=:0
./DMInstall.bin
./DMInstall.bin -i
/dm/dmdbms/script/root/root_installer.sh
dmdba/tmp 空间不足:设置 DM_INSTALL_TMPDIR 指向其他目录DISPLAY 和 xhost +掌握图形化和 dminit 命令行两种方式初始化实例,并注册系统服务。
cd /dm/dmdbms/tool
./dbca.sh
按向导设置数据库目录、库名、实例名、端口、初始化参数、口令等。cd /dm/dmdbms/bin
./dminit path=/dm/data db_name=DAMENG instance_name=DMSERVER port_num=5236
/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DAMENG -dm_ini /dm/data/DAMENG/dm.ini
systemctl start DmServiceDMSERVER.service systemctl stop DmServiceDMSERVER.service
disql 或 manager 连接数据库。掌握完整卸载 DM 数据库管理软件的方法。
cd /dm/dmdbms
./uninstall.sh
./uninstall.sh -i
掌握表空间的创建、修改、删除,以及联机重做日志的维护。
CREATE TABLESPACE dmdata
DATAFILE '/dm/data/DAMENG/DMDATA01.DBF' SIZE 128,
'/dm/data/DAMENG/DMDATA02.DBF' SIZE 128;
ALTER TABLESPACE dmdata ADD DATAFILE '/dm/data/DAMENG/DMDATA03.DBF' SIZE 500;
ALTER TABLESPACE dmdata RESIZE DATAFILE '/dm/data/DAMENG/DMDATA01.DBF' TO 256;
ALTER TABLESPACE dmdata DATAFILE '/dm/data/DAMENG/DMDATA02.DBF' AUTOEXTEND OFF;
ALTER TABLESPACE dmdata DATAFILE '/dm/data/DAMENG/DMDATA03.DBF' AUTOEXTEND ON NEXT 20 MAXSIZE 20480;
ALTER TABLESPACE dmdata OFFLINE;
ALTER TABLESPACE dmdata RENAME DATAFILE '...' TO '...';
ALTER TABLESPACE dmdata ONLINE;
DROP TABLESPACE dmdata;
ALTER DATABASE ADD LOGFILE '/dm/data/DAMENG/DAMENG03.log' SIZE 256;
ALTER DATABASE RESIZE LOGFILE '/dm/data/DAMENG/DAMENG03.log' TO 500;
掌握资源限制、角色、用户的创建与管理,以及权限分配。
CREATE PROFILE TESTPRO LIMIT
FAILED_LOGIN_ATTEMPS 3
PASSWORD_LIFE_TIME 90
PASSWORD_LOCK_TIME 5
PASSWORD_GRACE_TIME 3;
CREATE ROLE testrole;
GRANT CREATE TABLE, CREATE VIEW TO testrole WITH ADMIN OPTION;
CREATE USER testuser IDENTIFIED BY "Dameng123"
DEFAULT TABLESPACE dmdata;
GRANT testrole TO testuser;
GRANT CREATE USER, CREATE ROLE TO testuser;
GRANT SELECT, INSERT ON dmhr.employee TO testuser;
SOI 角色VTI 角色掌握表的创建、约束管理、数据插入、查询、排序、子查询、多表连接和聚合。
示例:
CREATE TABLE testuser.testdept (
deptid INT PRIMARY KEY,
deptname VARCHAR(50) NOT NULL,
location VARCHAR(30)
);
CREATE TABLE testuser.testemp (
empid INT PRIMARY KEY,
empname VARCHAR(30) UNIQUE,
salary NUMBER(7,2) CHECK(salary >= 8000 AND salary <= 30000),
deptid INT NOT NULL,
FOREIGN KEY (deptid) REFERENCES testuser.testdept(deptid)
);
掌握索引、视图、物化视图、序列、同义词、DBLINK 的创建和管理。
CREATE INDEX testuser.empindex ON testuser.testemp(empname);
CREATE VIEW testuser.testview AS
SELECT empid, empname, salary FROM testemp WHERE deptid IN (101,102)
WITH CHECK OPTION;
CREATE MATERIALIZED VIEW testuser.testmview1 AS
SELECT * FROM testuser.testemp;
REFRESH MATERIALIZED VIEW testuser.testmview1 COMPLETE;
CREATE MATERIALIZED VIEW LOG ON testuser.testemp;
CREATE MATERIALIZED VIEW testuser.testmview2
REFRESH FAST WITH PRIMARY KEY AS
SELECT * FROM testuser.testemp;
CURRVAL 需先调用 NEXTVAL掌握 dexp / dimp 逻辑导出导入,以及图形化方式。
./dexp SYSDBA/Dameng123 directory=/dm/backup/dexp file=fulldb.dmp log=fulldb.log
./dimp SYSDBA/Dameng123 directory=/dm/backup/dexp file=fulldb.dmp log=imp_full.log
./dexp SYSDBA/Dameng123 directory=/dm/backup/dexp file=dmhr.dmp log=dmhr.log schemas=DMHR
./dimp SYSDBA/Dameng123 directory=/dm/backup/dexp file=dmhr.dmp log=dimpdmhr.log remap_schema=DMHR:TESTUSER
SELECT FOR DUMP 或目录读写权限IGNORE_INIT_PARAA=1掌握 DMSQL 程序块、条件判断、循环、游标、异常处理,以及过程和函数的调用。
NO_DATA_FOUND 异常示例:
CREATE OR REPLACE PROCEDURE dmhr.p_addsalbydept(in_deptid IN INT)
IS
v_newsalary INT := 0;
BEGIN
FOR emp IN (SELECT salary, employee_id FROM dmhr.employee WHERE department_id = in_deptid) LOOP
IF emp.salary < 10000 THEN
v_newsalary := emp.salary * 1.12;
ELSIF emp.salary <= 20000 THEN
v_newsalary := emp.salary * 1.10;
ELSE
v_newsalary := emp.salary * 1.08;
END IF;
UPDATE dmhr.employee SET salary = v_newsalary WHERE employee_id = emp.employee_id;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;
EXECUTE 权限了解表级触发器和事件级触发器的使用。
BEFORE DELETE 表级触发器,记录被删除员工信息到历史表BEFORE DROP OR TRUNCATE 事件级触发器,阻止对模式对象的删除操作示例:
CREATE OR REPLACE TRIGGER dmhr.tr_delemp
BEFORE DELETE ON dmhr.employee
FOR EACH ROW
BEGIN
INSERT INTO dmhr.emp_history(...)
VALUES(:OLD.employee_id, :OLD.employee_name, ...);
END;
掌握 unixODBC 和 dmPython 的安装与配置。
odbcinst.ini 和 odbc.iniisql -v DM8 测试连接cd /dm/dmdbms/drivers/python/dmPython
python3 setup.py install
import dmPython
conn = dmPython.connect(user='SYSDBA', password='Dameng123', server='localhost', port=5236)
cursor = conn.cursor()
cursor.execute('SELECT * FROM dmhr.employee LIMIT 10')
print(cursor.fetchall())
cursor.close()
conn.close()
Can't open lib:配置 LD_LIBRARY_PATHodbc.inidmdbaDM_HOME 和 PATHDCA 操作手册覆盖了达梦数据库从安装部署到日常运维、开发基础的完整流程。练习时建议按章节顺序操作,重点掌握:
多动手、多验证,遇到报错先看权限和环境变量,基本都能解决。
文章
阅读量
获赞
