一、 环境准备
Vm虚拟机,中标麒麟6.0-64bit的iso操作系统镜像,odbc安装镜像
二、 实现过程
1、 首先我们来安装vm虚拟机。这个很简单双击虚拟机的安装文件就可以了。
2、在虚拟机中安装中标麒麟6.0-64bit操作系统
创建新的虚拟机,自定义。高级
随后安装操作系统。
选择后centos6.0 64 。这里用到的中标麒麟系统的内核是centos6.0.配置好的就选2个u,2个核。安装目录自己定。其他都是默认下一步。
右键点击虚拟机。设置里把centos系统的ios镜像加载到光驱中,开始启动虚拟机。镜像从光驱引导,开始装系统。如果没成功启动,把vm软件关了重启。或者电脑重启。我每次都要重启电脑才可以。安装完成后,重新引导重启。进入linux操作系统。
3.修改IP地址。让xshell可以远程。
4.用桥接的网络连接模式。将主机和虚拟机的ip配置在同一个网段,相同网关,可以在主机中使用用xshell模拟远程登陆操作,
5.右键打开终端创建一个opt文件夹里边编辑dm.sh
[root@localhost ~]# mkdir /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# vim dm.sh
dm.sh内容如下
#!/bin/bash
echo "Now create dinstall groups."
echo "Plus 'dmdba',Also setting the Environment."
groupadd dinstall
useradd -g dinstall -d /home/dmdba -s /bin/bash -c "dmdba Infrastructure Owner" dmdba
echo "dmdba" | passwd --stdin dmdba
echo 'PATH=$DM_HOME/bin:$PATH:$HOME/bin:$DM_HOME/tool'>> /home/dmdba/.bash_profile
echo "export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'" >> /home/dmdba/.bash_profile
cd /home/dmdba
su - dmdba -c ". ~/.bash_profile"
echo "The Groups and users has been created."
echo "The Environment for dmdba also has been set successfully."
echo "Now create the necessary directory for dmdba users and change the authention to dmdba users..."
mkdir -p /dm7/
chown -R dmdba:dinstall /dm7
chmod -R 775 /dm7
echo "The necessary directory for dmdba users and change the authention to dmdba users has been finished"
#Purpose:Change the /etc/security/limits.conf.
echo "Now modify the /etc/security/limits.conf,but backup it named /etc/security/limits.conf.bak before"
cp /etc/security/limits.conf /etc/security/limits.conf.bak
echo "dmdba soft nofile 4096" >>/etc/security/limits.conf
echo "dmdba hard nofile 65536" >>/etc/security/limits.conf
echo "Modifing the /etc/security/limits.conf has been succeed."
echo "Now disable iptables"
service iptables stop
chkconfig iptables off
service iptables status
echo "Disable iptables successfully."
#Modify Selinux
echo "Now disable Selinux."
sed -i 's/enforcing/disabled/g' /etc/sysconfig/selinux
echo "Disable Selinux successfully."
#mount dm7 iso dm7iso
cd /root
echo "mount dm7 iso"
read -p "isoPath:" path
echo "mount -o loop $path /mnt" > mountdm7iso.sh
chmod 755 mountdm7iso.sh
./mountdm7iso.sh
#install DM7 program
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo "Press any key to continue!"
char=`get_char`
echo ""
echo "Now install dm7"
echo ""
su - dmdba -c "/mnt/DMInstall.bin -i"
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo "Press any key to continue!"
char=`get_char`
echo ""
echo "Now create DmApservice and the other directory for dmdba users and change the authention to dmdba users..."
echo ""
/dm7/script/root/root_installer.sh
mkdir -p /dm7/data/
mkdir -p /dm7/backup/
mkdir -p /dm7/arch/
chown -R dmdba:dinstall /dm7
chmod -R 775 /dm7
echo "Now create database instance"
su - dmdba -c "/dm7/bin/dminit path=/dm7/data/ db_name=PROD instance_name=TEST port_num=5237 CHARSET=0 EXTENT_SIZE=16 PAGE_SIZE=16 CASE_SENSITIVE=1 SYSDBA_PWD=Dameng123 log_size=500 ARCH_FLAG=1 TIME_ZONE=+08:00 LENGTH_IN_CHAR=1"
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo "Press any key to continue!"
char=`get_char`
echo ""
echo "Now create Dmserver"
echo ""
/dm7/script/root/dm_service_installer.sh -t dmserver -p TEST -i /dm7/data/PROD/dm.ini
echo "Now start database instance"
sleep 3
service DmServiceTEST start
编辑完成授权dm.sh,并执行文件
[root@localhost opt]# chmod 777 dm.sh
[root@localhost opt]# ./dm.sh
6.打开DM管理器
--查询版本
select * from v$version;
--增加日志文件
alter database add logfile '/dm7/data/PROD/PROD03.log' size 256;
--修改日志文件大小到500m
alter database resize logfile '/dm7/data/PROD/PROD01.log' to 500;
alter database resize logfile '/dm7/data/PROD/PROD02.log' to 500;
alter database resize logfile '/dm7/data/PROD/PROD03.log' to 500;
--修改数据库兼容模式 2 oracle 3:MS SQL SERVER 4:兼容MYSQL 1:兼容SQL92标准
sp_set_para_value(2,'COMPATIBLE_MODE',2);
--扩大链接数到150
sp_set_para_value(2,'MAX_SESSIONS',150);
--查询密码策略 0: 无策略 1: 禁止与用户名相同 2: 口令长度不小于9 4: 至少包含一个大写字母(A-Z) 8 :至少包含一个数字(0-9) 16:至少包含一个标点符号 0: 无策略;
select para_name,para_value from v$dm_ini where para_name='PWD_POLICY';
--设置密码策略 可以相加 1+2+4+8 重启动生效
sp_set_para_value(2,'PWD_POLICY',15);
--创建表空间tbs 两个数据文件,初始大小128m,每次扩展4m,最大10GB
create tablespace tbs datafile '/dm7/data/PROD/TBS01.dbf' size 128 autoextend on next 4 maxsize 10240,
'/dm7/data/PROD/TBS02.dbf' size 128 autoextend on next 4 maxsize 10240;
--创建用户TEST,密码Dameng123,默认表空间tbs
create user TEST identified by "Dameng123" default tablespace tbs;
--授予用户TEST资源管理角色权限RESOURCE
grant RESOURCE to TEST;
--新建连接,以test用户打开建表sql
--查询系统预置权限(对表\视图的)
select distinct(privilege) from dba_sys_privs where privilege like '%TABLE%' order by privilege;
select distinct(privilege) from dba_sys_privs where privilege like '%VIEW%' order by privilege;
--授予用户test 员工表和部门表增删改查权限 (先创建)
grant select,delete,insert,update on "TEST"."DEPARTMENT" to test
grant select,delete,insert,update on "TEST"."EMPLOYEE" to test
--创建角色r1,拥有视图v1查询权限,员工表查询权限
create role r1;
grant select,delete,insert,update on "TEST"."EMPLOYEE" to r1;
grant select on test.v1 to r1;
--创建用户user1,拥有角色r1权限
create user user1 identified by "Dameng123" default tablespace tbs;
grant r1 to user1;
--授予user1,部门表部门ID查询权限
grant select (DEPARTMENT_ID) on test.DEPARTMENT to user1;
7.使用test用户连接
创建部门表 -主键DEPARTMENT_ID -NOT NULL 非空约束 -PRIMARY KEY 主键(唯一非空) -unique 唯一约束
CREATE TABLE "TEST"."DEPARTMENT"
(
"DEPARTMENT_ID" DEC(4,0) NOT NULL,
"DEPARTMENT_NAME" VARCHAR(30) NOT NULL,
"MANAGER_ID" DEC(6,0) ,
"LOCATION_ID" DEC(4,0),
CONSTRAINT "DEPT_ID_PK" NOT CLUSTER PRIMARY KEY("DEPARTMENT_ID"))STORAGE(ON "TBS", CLUSTERBTR);
--创建员工表 -外键DEPARTMENT_ID关联部门表DEPARTMENT_ID -主健EMPLOYEE_ID
CREATE TABLE "TEST"."EMPLOYEE"
(
"EMPLOYEE_ID" DEC(6,0) NOT NULL,
"EMPLOYEE_NAME" VARCHAR(20) NOT NULL,
"EMAIL" VARCHAR(25) NOT NULL,
"PHONE_NUM" VARCHAR(20) unique,
"HIRE_DATE" DATETIME(6) NOT NULL,
"JOB_ID" VARCHAR(50) NOT NULL ,
"SALARY" DEC(8,2),
"COMMISSION_PCT" DEC(2,2),
"MANAGER_ID" DEC(6,0),
"DEPARTMENT_ID" DEC(4,0),
NOT CLUSTER PRIMARY KEY("EMPLOYEE_ID"),
CONSTRAINT "EMP_DEPT_FK" FOREIGN KEY("DEPARTMENT_ID") REFERENCES "TEST"."DEPARTMENT"("DEPARTMENT_ID"))STORAGE(ON "TBS", CLUSTERBTR);
--创建试图v1 员工表中 EMPLOYEE_ID ,EMPLOYEE_NAME,DEPARTMENT_ID,部门表中DEPARTMENT_NAME
create or replace view v1 as select EMPLOYEE_ID ,EMPLOYEE_NAME,EMPLOYEE.DEPARTMENT_ID,DEPARTMENT_NAME
from EMPLOYEE,DEPARTMENT
where EMPLOYEE.DEPARTMENT_ID=DEPARTMENT.DEPARTMENT_ID;
--员工表job_id创建索引
create index ind_emp on "TEST"."EMPLOYEE"(JOB_ID);
--查询当前用户权限、角色
select * from USER_TAB_PRIVS
select * from USER_ROLE_PRIVS
--备份
--查询归档模式 N非归档 Y归档 热备份不丢数据要打开归档
select arch_mode from v$database;
--打开归档
--切换到mount
alter database mount;
--指定归档日志路径 大小
alter database add archivelog 'type=local,dest=/dm7/arch,file_size=64,space_limit=0';
--打开归档
alter database archivelog;
--切换到open
alter database open;
--热备份 完全备份
backup database full backupset '/dm7/backup/full-wanquanbeifen';
--热备份 增量备份
backup database increment backupset '/dm7/backup/incr-zengliangbeifen;
--还原备份
service DmServicePROD restart
SQL> alter database open;
SQL> restore tablespace tbs from backupset ‘/dm7/backup/full-wanquanbeifen’;
SQL> alter tablespace tbs online;
ODBC安装
[root@dm1 桌面]# tar -zxvf unixODBC-2.3.0.tar.gz
./configure
安装 如果指定路径: --prefx指定路径
[root@dm1 unixODBC-2.3.0]# ./configure
make
[root@dm1 unixODBC-2.3.0]# make
make install
[root@dm1 unixODBC-2.3.0]# make install
安装路径
touch /usr/local/etc/odbcinst.ini
touch /usr/local/etc/odbc.ini
获取版本信息和配置文件路径
查看版本信息:[root@dm1 etc]# odbc_config –version
查看位置
[root@dm1 etc]# odbc_config –odbcini (DSN)
[root@dm1 etc]# odbc_config –odbcinstini (驱动)
配置DSN
[root@dm1 etc]# vim odbc.ini
[dm]
Description = DM ODBC DSN
Driver = DM7 ODBC DRIVER (驱动名字)
SERVER = localhost (服务器)
UID = SYSDBA (用户名)
PWD = SYSDBA (密码 )
TCP_PORT = 5237 (端口号)
配置驱动
[root@dm1 etc]# vim odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/bin/libdodbc.so (驱动路径)
1. 测试
isql
root连接会报错
[root@dm1 etc]# isql dm
[ISQL]ERROR: Could not SQLConnect
需要到dmdba登录
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69973652/viewspace-2694690/ ,如需转载,请注明出处,否则将追究法律责任。