1.数据库安装参考以下链接,说的非常的全:
比如下载oracle11g ,linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip这两个压缩包都要下载。
2.数据库安装好、数据库用户创建好后,设置开机启动以及开机监听。
安装上面的教程装好后,是没有设置开机启动的,我上网搜了下方法但是没成功,如下:
Linux下oracle自动启动监听及服务_SKY的专栏-CSDN博客 (你们自己试下,看能不能成功)
需要注意的是在rc.local文件添加的lsnrctl start 和 dbstart前面的路径要改成Oracle实际安装的目录,自己试下那两句命令能不能走得通,实际他的意思就是切换到oracle用户然后执行lsnrctl start和dbstart命令,我手动执行没问题,但重启服务器没执行到,我也不知道为啥。
后面我是通过自己写了个开机或重启执行sh脚本解决的,命令如下:
1.touch /oracle.sh #在根目录新建sh脚本
2.vi /oracle.sh #打开文件,在里面添加以下内容然后保存:
#!/bin/sh
su -l oracle <<EOF
lsnrctl start
sqlplus / as sysdba
CONNECT / AS SYSDBA
STARTUP
exit
EOF
代码意思是切换到oracle用户执行:监听启动命令、打开数据库控制台、使用SYSDBA进行连接、启动数据库、关闭数据库控制台。
3.crontab -e #打开linux定时任务文件编辑保存
SHELL=/bin/bash
#开机或重启时执行
@reboot /bin/bash /oracle.sh
然后重启测试下。用界面化数据库连接看能不能连上或netstat -nultp 看有没监听1521端口。
3.oracle数据导入导出
详细介绍:oracle11g数据库导入导出方法教程_xinxiaoyong的博客-CSDN博客_oracle 导入
expdb/impdp 方式导入导出
1.创建逻辑目录
# 服务器创建目录:
mkdir /opt/expdpdata
# 给目录修改用户和用户组
chown -R oracle:oinstall /opt/expdpdata/
# 给目录读写权限
chmod -R 775 /opt/expdpdata/
# 切换到oracle用户
su -l oracle
# 打开sqlplus
sqlplus / as sysdba
# 创建逻辑目录(目录名称:dp)
create or replace directory dp as '/opt/expdpdata/';
# 给用户(MMZSIT)授权操作该目录
grant read,write on directory dp to mmzsit;
# 导入导出在Linux终端执行######################
# 导出用户表的数据
expdp mmzsit/mmzsit tables=users dumpfile=users.dmp directory=dp
# 导入数据(dmp文件要放到逻辑目录dp映射的实际目录中去/opt/expdpdata/,LOG_SERVICE/Waner123456=用户名/密码),table_exists_action=truncate 的意思是数据旧的修改、新的追加,
impdp mmzsit/mmzsit directory=dp dumpfile=FULLEXPDP.DMP full=y table_exists_action=truncate
注意:导出导入时,必须确认客户端和服务端数据库字符集相同,不然如果存在中文列,中文会乱码为问号导致报列重复的错误。
4.常用命令(在oracle用户下使用)
lsnrctl start|stop|status //监听oracle端口 开启|停止|状态
sqlplus / as sysdba //打开数据库控制台
sql> connect / as sysdba //切换到总权限账号
sql> STARTUP //启动数据库
sql> shutdown immediate //停止数据库
sql> select username from dba_users; //oracle查看数据库用户
sql> drop user mmzsit; //删除mmzsit用户
sql> drop user mmzsit cascade; //删除mmzsit用户名下的所有表和视图
sql> select userenv('language') from dual; //查看oracle数据库字符集,设置字符集方法:
将Oracle的字符集由AMERICAN_AMERICA.ZHS16GBK修改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK_范一刀的博客-CSDN博客_american字符集
5.ORACLE中创建自增的ID字段
-- 1.创建序列(SET_USERS_ID),其中 INCREMENT 为步长 ; START WITH 为开始的数值 ; MINVALUE 为最小值; MAXVALUE 为最大值 ; NOCYCLE 为不进行循环。
CREATE SEQUENCE "SET_USERS_ID" INCREMENT BY 1 START WITH 2 MINVALUE 1 MAXVALUE 1.0E28 NOCYCLE;
-- 2.为USERS表ID字段 创建触发器 (TR_USERS_ID)
CREATE OR REPLACE TRIGGER TR_USERS_ID
BEFORE INSERT ON USERS FOR EACH ROW
BEGIN
SELECT SET_USERS_ID.NEXTVAL INTO:NEW.ID FROM DUAL;
END;
--其中NEXTVAL是指序列 SET_USERS_ID 的下一个值 , NEW 表示USERS表的新的一条记录。