赞
踩
Centos7安装oracle
Oracle官网下载地址
https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html
百度经验配置流程:
https://jingyan.baidu.com/article/6fb756ecf328b0641958fb38.html
其他配置地址:
https://www.cnblogs.com/jinanxiaolaohu/p/10799101.html
CSDN:较详细(重要)
https://blog.csdn.net/Xeon_CC/article/details/100560040
1. 下载需要的安装包:
1.1 preinstall 依赖
http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
1.2 Oracle 的rpm 安装包
https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
重要的准备工作:!!!!!
一、创建虚拟内存
来源:https://blog.csdn.net/lengyue1084/article/details/51405640
(1)使用dd命令创建一个swap交换文件
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
这样就建立一个/home/swap的分区文件,大小为1G。
(2)制作为swap格式文件:
mkswap /home/swap
(3)再用swapon命令把这个文件分区挂载swap分区
/sbin/swapon /home/swap
我们用free -m命令看一下,发现已经有交换分区了
但是重启系统后,swap分区又变成0了。
(4)为防止重启后swap分区变成0,要修改/etc/fstab文件
vi /etc/fstab
在文件末尾(最后一行)加上
/home/swap swap swap default 0 0
保存
这样就算重启系统,swap分区还是有值。
二、准备oracle用户:
[root@localhost ~]# groupadd oinstall
[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd oracle -g oinstall -G dba
三、准备jdk,并配置环境变量
下载地址
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2、编辑环境变量的配置(文件环境变量):
vi /etc/profile
在尾部增加如下代码:
#JDK全局环境变量配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
Java -sersion
开始ORACLE数据库安装工作:
第一步
(1)创建目录,方便软件管理
在 /usr/local/ 目录创建一个software目录
进入software目录 cd /usr/local/software
(2)下载oracle的依赖:
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
(3)下载Oracle19c:
前往https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
下载Oracle19c的RPM包,然后上传到 /usr/local/software 的目录下
第二步
在 /usr/local/software 目录下
安装依赖:
yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
安装Oracle19c :
yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
创建数据库(需要较长的时间,请耐心等待):
/etc/init.d/oracledb_ORCLCDB-19c configure
直到出现Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.才是安装成功
第三步
配置Oracle环境变量
编辑profile文件:
vi /etc/profile
在文件末尾加上
#Oracle environment
export PATH
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export LANG=en_US.UTF-8
export NLS_LANG=american_america.ZHS16GBK
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin:/home/oracle/run
export ORACLE_TERM=xterm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/jdk
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
export TMOUT=0
alias s="sqlplus / as sysdba"
使环境变量生效:
source /etc/profile
第四步
(1)为oracle用户设置一个密码:
[root@localhost]# passwd oracle
(2)进入oracle用户,因为root用户无法登陆oracle
[root@localhost]# su - oracle
(3)敲一个 s 命令,回车,就可以进入到oracle的命令行模式,因为环境变量配置了alias s="sqlplus / as sysdba"
sqlplus / as sysdba表示没有用户名和密码验证的意思。这个在创建用户的时候,使用,如果要进行数据库操作,请勿使用此命令。
[oracle@localhost ~]$ s
image.png
(4)创建oracle数据库的用户:创建用户
首先要执行下面两个命令,才可以创建数据库的用户:
SQL> conn / as sysdba;
SQL> alter session set "_ORACLE_SCRIPT"=true; 创建用户的时候都需要执行一次这个操作
创建用户:(用户名和密码都是seacat)
SQL> create user seacat identified by seacat;
create user lky identified by 123456;
再次执行SQL> alter session set "_ORACLE_SCRIPT"=true; 这个需要执行两遍
grant connect, resource,dba to lky;
为用户授权:
授权命令语法: grant connect, resource to 用户名;
dba (数据库管理员)
例子: grant connect, resource,dba to test;
grant connect, resource to seacat;
show pdbs; 显示数据库
第五步
目的是配置listener.ora监听文件
(1) root用户下,进入目录:
cd /opt/oracle/product/19c/dbhome_1/network/admin
然后编辑listener.ora文件:
vi listener.ora
把默认的配置文件改成下面的结构,实际上,多加了一个SID_LIST_LISTENER的配置,(LISTENER的配置不要动)
要注意:SID_LIST下的配置代码一定要tab建缩进,否则无法识别
这个地方不能动!!!注意!!!!
########################
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = izuf6ddyiugxoeqrb7r7f0z)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
#隔两行
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCLCDB)
(ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
(SID_NAME = ORCLCDB)
)
)
####################
#然后保存
(2)重启监听:
进入oracle的用户 su - oracle
[oracle@localhost ~]$ lsnrctl stop
[oracle@localhost ~]$ lsnrctl start
监听打开失败的话多数时防火墙没关,listen.ora文件没有对齐系统不识别。
查看监听状态:
[oracle@localhost ~]$ lsnrctl status
显示The command completed successfully 为开启成功。
(3) 查看ORACLE_SID的值:
[oracle@localhost ~]$ echo $ORACLE_SID
tnsnames.ora配置文件的登录值
39 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 39.108.252.218)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)
这个ORACLE_SID的值要跟 listener.ora 配置文件里面的GLOBAL_DBNAME和SID_NAME的值要一致,否则连接Oracle会报错,所以,我们用NavicatPremium连接Oracle时,Server Name 不用默认值,而是用ORCLCDB这个值
第六步:
修改连接错误的问题ORA-28040: No matching authentication protocol
19c修改位置:
/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora
远程连接报错:ORA-28040: No matching authentication protocol这个错误
解决:在Oracle用户(不是grid用户)下,将/opt/oracle/product/19c/dbhome_1/network/admin
/sqlnet.ora文件原来的SQLNET.ALLOWED_LOGON_VERSION=8注释掉(如果没有sqlnet.ora文件,那么就创建一个),修改为如下的行:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
不用重启数据库或者监听,也不用重启应用。
(4) 我们要在阿里云官网设置防火墙规则,开放1521端口
上阿里云官网,进入控制台,进入你的服务器,选择防火墙,添加规则,允许TCP和UDP协议的1521端口
(5)我们试着用NavicatPremium连接阿里云的Oracle
,我们发现报错了:
解决办法:
在oracle用户下敲 s 命令进入oracle命令行模式
SQL> grant create session to seacat;
seacat是数据库用户名
第七步
如果要进行数据库操作
su - oracle 进入oracle用户
然后键入sqlplus命令以后,输入刚刚创建的Oracle用户名和密码就OK了
2018-10-12 09:45:02 M_Jack 阅读数 740 收藏 更多
分类专栏: 数据库
oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。
一、创建用户
oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
语法[创建用户]: create user 用户名 identified by 口令[即密码];
例子: create user test identified by test;
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
例子: alter user test identified by 123456;
二、删除用户
语法:drop user 用户名;
例子:drop user test;
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
语法: drop user 用户名 cascade;
例子: drop user test cascade;
三、授权角色
oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.
(1)讲解三种标准角色:
1》. connect role(连接角色)
--临时用户,特指不需要建表的用户,通常只赋予他们connect role.
--connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
--拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)
2》. resource role(资源角色)
--更可靠和正式的数据库用户可以授予resource role。
--resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3》. dba role(数据库管理员角色)
--dba role拥有所有的系统权限
--包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
(2)授权命令
语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
(3)撤销权限
语法: revoke connect, resource from 用户名;
列子: revoke connect, resource from test;
四、创建/授权/删除角色
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
1》创建角色
语法: create role 角色名;
例子: create role testRole;
2》授权角色
语法: grant select on class to 角色名;
列子: grant select on class to testRole;
注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限
3》删除角色
语法: drop role 角色名;
例子: drop role testRole;
注:与testRole角色相关的权限将从数据库全部删除
Linux:开启或关闭oracle
(1) 以oracle身份登录数据库,命令:su - oracle(注意空格)
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 启动数据库,命令:startup
(5) 如果是关闭数据库,命令:shutdown immediate
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl(Listener Control的缩写)
(8) 启动监听器,命令:start
(9) 退出监听器控制台,命令:exit
Centos7备份oracle:
第一步,我們要做的就是进入Oracle,对我们想要操作Oracle首先要进入Oracle服务
在我们的Linux黑窗口上输入su – oracle命令就会进入如下窗口
2、 第二步,我们要输入命令了,注意如果你的数据库正在运行的话不要使用exp命令,请
使用expdp命令
命令:expdp 用户名/密码@数据库名 dumpfile=导出文件的名字(自己命名).dmp tables=想要导出的表名(如果是想多个表请使用tables=(表1,表2,表3))
然后回车即可
重启oracle
方法3:
(1) 以oracle身份登录数据库,命令:su -oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 启动数据库,命令:startup
(5) 如果是关闭数据库,命令:shutdown immediate
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl
(8) 启动监听器,命令:start
(9) 退出监听器控制台,命令:exit
二、重启实例:
(1) 切换需要启动的数据库实例:export ORACLE_SID=C1
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 如果是关闭数据库,命令:shutdown abort
(5) 启动数据库,命令:startup
(6) 退出sqlplus控制台,命令:exit
ORACLE建立数据库链接:
建立过程:
1、建立方的服务端配置远程数据库的tnsname配置。
2、tnsping 远程数据库tnsnames配置名称,可以通。
3、sqlplus登录后执行:
SQL> create database link dblinktest connect to user identified by passwd using 'ceshi';
其中:
dblinktest是database link的名称。
user是远程数据库的用户名。
passwd是远程数据库的密码。
ceshi是数据库服务端配置的tnsnames中名称。
4、执行:
SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER OBJECT_NAME
--------------- -------------------------
OPEN DBLINKTEST
可以看到已经建立了这个database link。
5、执行:
SQL> select * from t@dblinktest;
ID
----------
0
2
3
4
5
当然也可以执行insert语句:
SQL> insert into t@dblinktest values(1);
1 row created.
创建完用户后登陆出现以下错误:
解决命令:
grant create session,resource to <user>
一键安装lnmp命令:https://lnmp.org/auto.html
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5&&LNMP_Auto="y" DBSelect="1" DB_Root_Password="lky@123" InstallInnodb="y" PHPSelect="2"SelectMalloc="1"
./install.sh lnmp
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。