百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

采用RPM方式安装oracle rpm是否安装

qiyuwang 2024-10-19 08:56 16 浏览 0 评论

下载RPM安装包

(1)preinstall预安装包

http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm


(2)Oracle 的rpm 安装包

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html


安装

 yum localinstall -y oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm
 yum localinstall -y oracle-database-ee-19c-1.0-1.x86_64.rpm


修改字符集以及其他的配置

 vim /etc/init.d/oracledb_ORCLCDB-19c

修改字符编码 export CHARSET=ZHS16GBK


在这里改数据库名的话,要同步修改文件名称,


初始化数据库

 /etc/init.d/oracledb_ORCLCDB-19c configure
 //执行完这个会创建一个CDB 一个PDB



时间较久,这里遇到了个问题

初始化的时候报错

LISTENER:No valid IP Address returned for the host VM-20-15-centos.

找不到主机名对应的有效IP地址


解决方法:

配置/etc/hosts,增加主机名和当前内网IP的关系

x.x.x.x(不要用127.0.0.1) VM-20-15-centos


配置环境变量

1.修改oracle用户密码

 passwd oracle


2.切换至oracle用户,设置环境变量

注意不要在root用户下执行下列操作,否则后面会出现命令找不到的情况


 su oracle
 vim ~/.bash_profile


全局的是在/etc目录下(/etc/profile)

用户个人的是在用户的家目录下(~/.bash_profile)


 export ORACLE_BASE=/opt/oracle
 export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
 export ORACLE_SID=ORCLCDB
 export ORACLE_PDB_SID=ORCLPDB1
 export PATH=$ORACLE_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
 export NLS_LANG=american_america.ZHS16GBK
 source ~/.bash_profile


3.使用Oracle登录进行相关的处理


以sqlplus / as sysdba方式登录时,采用的是操作系统验证的方式,所以用户名/密码输与不输入是一样的

 sqlplus / as sysdba


4.创建自动启动pdb的触发器

 //创建
 CREATE TRIGGER OPEN_ALL_PDBS
 AFTER STARTUP ON DATABASE
 BEGIN
 EXECUTE IMMEDIATE 'alter pluggable database all open';
 END OPEN_ALL_PDBS;
 /

 //查看所有的触发器
 select trigger_name from all_triggers where table_name='OPEN_ALL_PDBS';

 //查看触发器的写法
 select text from all_source where type='TRIGGER' AND name='OPEN_ALL_PDBS';

 //删除触发器
 drop trigger OPEN_ALL_PDBS;


5.安装完毕重启数据库服务器

 reboot


启动数据库

1.启动

 su - oracle
 lsnrctl start #启动监听,oracle下要有相应的环境变量


sys用数据库的超级用户,数据库内很多重要的东西(数据字典表、内置包、静态数据字典视图等)都属于这个用户,sys用户必须以sysdba身份登录。

 sqlplus / as sysdba

 startup


2.查看已启用的用户

 select username from dba_users where account_status='OPEN';


dba_开头的是查全库所有的(要有dba权限),all_开头的是查当前用户可以看到的,user_开头的是查当前用户的


在oracle中,可利用“dba_sys_privs”查询用户的权限

 select * from dba_sys_privs where grantee='用户名'



3.修改用户密码

 alter user sys identified by password
 alter user system identified by password

 --pdb的用户
 alter user pdbadmin identified by password



创建用户

1.管理员登录

 sqlplus / as sysdba
 or connect sys / as sysdba


2.创建用户

从12c开始 oracle添加了CDB,默认连接的都是CDB,

在不切换到pdb的情况下,创建用户名需要加C##的前缀

 echo $ORACLE_SID #查看当前数据库的SID

 create user c##cheng IDENTIFIED BY password;


3.用户添加权限

 grant connect,resource,dba,unlimited tablespace to c##cheng container=all;



对于普通用户:授予connect, resource权限。

对于DBA管理用户:授予connect,resource, dba权限。


CDB(ContainerDatabase)与PDB(PluggableDatabase,就是普通数据库)

ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系,就是可以插拔式地更换数据库。


一个CDB容器数据库通常包含CDB\$ROOTPDB$SEED组件:


a. CDB$ROOT存储着ORACLE提供的元数据和Common User,Common User 是指在每个容器中都存在的用户(c##或C##开头的用户),查看:

 show con_name;


b.PDB$SEED是创建PDB数据库的模板。一个CDB中有且只能有一个Seed,查看:

 show pdbs


--------------------------------------------------------------

每个PDB都是独立的单元,有自己的用户(local user)、表空间、数据文件,每个local user只能访问自己的PDB,而common user只要权限足够,可以访问任意PDB


创建PDB

 //查看表空间
 select * from dba_tablespaces;

 //查看当前用户的表空间
 select * from user_users;

 //查看表空间物理文件的名称及大小
 select * from dba_data_files;

 //如果在这一步创建表空间报错缺少路径的话,我们可以去配置OMF管理, OMF 在后面单独整一个小节来讲解,
 //表空间不指定的话,则用户的表空间默认为SYSTEN的表空间
 create pluggable database ORCLPDBC admin user CHENG_PDBC identified by password default tablespace TS_PDBC;

创建数据库也可以使用DBCA(数据库配置助手)自动化、可视化的完成数据库创建,需要linux有可视化界面,不然会报错display not set


-------------------------

-------------------------

插队OMF记录

OMF,全称是Oracle Managed Files,即Oracle文件管理,使用OMF可以简化管理员的管理工作,不用指定文件的名字、大小、路径,其名字,大小,路径由oracle 自动分配。在删除不再使用的日志、数据、控制文件时,OMF也可以自动删除其对应的OS文件

解决: ORA-02199: missing DATAFILE/TEMPFILE clause


//OMF支持下列文件的自动管理

表空间

日志文件(联机)

控制文件

前提条件:需要为这些类型文件设定相关参数。


 //数据文件管理参数:
 db_create_file_dest

 //查看db_create_file_dest参数
 show parameter db_create_file

 //设定db_create_file_dest参数
 ALTER SYSTEM SET db_create_file_dest = '/home/oracle/omf_data';

-------------------------

-------------------------

PDB相关命令

 //若状态为MOUNTED表示创建成功
 show pdbs;
//OPEN新创建的PDB,状态标为 read write 则开启成功
 alter pluggable database ORCLPDBC open



后续的切换PDB和启动就不记录了,后面有记录(这里是分为两次记录的,所以后续启动记录是另一个PDB)

 //记得给刚刚开出来的用户权限,向切换到本PDB再grant
 grant connect,resource,dba to CHENG_PDBC;
 grant create session to CHENG; 
 //启动pdb
//cdb切换至pdb
 alter session set container=pdborcl;

 //pdb切换至cdb
 //alter session set container=cdb$root;

 startup;


创建PDB自己的用户

//1.创建表空间
 CREATE TABLESPACE TS_CHENG_TEST LOGGING DATAFILE '/home/oracle/ts_test/TS_CHENG_TEST.dbf'
 SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE unlimited EXTENT MANAGEMENT LOCAL;

//2.创建临时表空间
 create temporary tablespace TS_CHENG_TEST_TEMP tempfile '/home/oracle/ts_test/TS_CHENG_TEST_TEMP.dbf'
 size 100m autoextend on next 32m maxsize 500m extent management local;

//3.创建用户
 CREATE USER CHENG IDENTIFIED BY PASSWORD DEFAULT TABLESPACE TS_CHENG_TEST TEMPORARY TABLESPACE TS_CHENG_TEST_TEMP;

//4.给用户授权
 grant connect,resource,dba to CHENG;
 grant create session to CHENG;


 grant select any dictionary to 用户; --这个权限比较大
 grant select_catalog_role to 用户; --这个权限是最低的要求,但是可以访问到v$相关视图

 revoke select_catalog_role from user;--收回权限


//5.删除用户
 drop user CHENG


创建PDB的用户的时候遇到个问题


新建pdb用户无法登录

报错ORA-01017: invalid username/password; logon denied


原因:

因为CDB和PDB的servicename可能是不一样的,需要先查询pdb的service_name

 SQL> select name,pdb from v$services;


然后再vi tnsnames.ora 中添加

 ORCL =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = orcl) 把查询到pdb对应的service_name写到这里
 )
 )


然后连接的时候加上SID

 conn scott/oracle@ORCL


注意:

Listener.ora、tnsnames.ora和sqlnet.ora这3个文件是关系orale网络配置的3个主要文件,其中listener.ora是和数据库服务器端相关,


而tnsnames.ora和slqnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。 这个客户端的意思是服务器上的客户端,服务器上也是可以通过客户端(sqlplus工具)连接到oracle服务器的


正儿八经的本机服务连接服务器的话,也可以去配置tnsnames.ora别名





linux下Oracle服务的启动和关闭

确保我们能够访问oracle数据库包含两部分,一个是oracle实例,一个是监听,两个同时开启,我们才能正常的使用数据库,因此我们在关闭和启动oracle服务时,也需要同时操作实例和监听


//查看
 ps -ef|grep oracle

//启动监听
 su - oracle
 lsnrctl start #启动监听,oracle下要有相应的环境变量

//启动实例
 sqlplus / as sysdba
 startup

 //查看实例的状态
 select status from v$instance;

//关闭监听
 lsnrctl stop
//关闭实例
 sqlplus / as sysdba
 shutdown immediate

注意:在 CDB 中,在 PDB 上发出 SHUTDOWN 中止等效于在非 CDB 上发出 SHUTDOWN INSTANT


直接使用shutdown immediate虽然是服务器主动断开连接但还是很慢,所以可以使用以下的步骤来:


 //1、关监听
 ps -ef |grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

//2、断session
就是上面的kill -9

 //3、断开
shutdown immediate

LOCAL=NO:非本地连接,即网络连接。它是通过Listener 连接到服务器的。客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。这是通过监听的流程。 所以在客户端需要配置监听,即配置tnsnames.ora。


LOCAL=YES:本地连接。 本地连接不走监听,所以在服务监听没有启动的情况下,通过本地的sqlplus 还是可以连上数据库的。


### 关闭实例的其他命令


SHUTDOWN ABORT

此模式适用于紧急情况,例如,当没有其他形式的关机成功时。这种关机模式是最快的。但是,此数据库的后续打开可能需要更长的时间,因为必须执行实例恢复以使数据文件保持一致。


由于不对打开的数据文件执行检查点操作,因此在数据库可以重新打开之前,必须进行实例恢复。其他关机模式不需要在数据库重新打开之前进行实例恢复。


注意:在 CDB 中,在 PDB 上发出 SHUTDOWN 中止等效于在非 CDB 上发出 SHUTDOWN INSTANT。

注意:实例恢复是将联机重做日志中的记录应用于数据文件以重建在最近一个检查点之后所做的更改的过程。就是将重做日志文件中的数据写入数据文件的操作


SHUTDOWN IMMEDIATE

此模式通常是仅次于 的最快模式。Oracle 数据库终止任何正在执行的 SQL 语句并断开用户连接。活动事务将终止,未提交的更改将回滚。SHUTDOWNABORT


SHUTDOWN TRANSACTIONAL,应该是生产中最安全的

此模式可防止用户启动新事务,但会等待所有当前事务完成,然后再关闭。此模式可能需要花费大量时间,具体取决于当前事务的性质。


SHUTDOWN NORMAL

这是默认的关机模式。数据库在关闭之前等待所有连接的用户断开连接。


关闭后重启报错ORA-01012: not logged on

shutdown abort

这个方式很危险,还是推荐上面的查出oracle进程后手动去kill掉


原因:

shutdown immediate是一种安全的数据库关闭方式

但是注意,如果数据库系统繁忙,当前有大量事务执行(甚至是大事务正在处理),那么使用此选项关闭数据库也可能需要大量时间





修改oracle默认端口

//关闭监听和服务
 lsnrctl stop
 shutdown immediate

// 找一个没有用的端口
 netstat -ano | grep **

//修改文件
 修改服务端%ORACLE_HOME%/network/admin/listener.ora文件里PORT=的值;

 修改服务端%ORACLE_HOME%/network/admin/tnsnames.ora文件里PORT=的值;

 注意:
 如果本机客户端使用tnsnames.ora别名登录的话也需要修改本机客户端的PORT

// 重启监听和服务(好像只用重启监听就行了,服务不能关闭重启)
 lsnrctl status 监听状态
 lsnrctl start
 startup




ORACLE中SID和SERVICE_NAME的区别


**数据库名**:数据库名是存储在控制文件中的名称,它代表的是数据库,也就是数据库包含的所有的物理文件的总称。


**实例名**:用于响应某个数据库操作的数据库管理系统的名称。实例名是由初始化参数文件的参数instance_name决定的。如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。一个数据库可以有多个实例,例如RAC,实例名(SID)用于标识数据库内的每一个实例的名称


**服务名**:SERVICE_NAME指的是listener中的全局数据库名:这个名字是由listener.ora中GLOBAL_DBNAME参数决定的。SERVICE_NAME是Oracle8i新引进的,8i之前一个数据库只能有一个实例。8i之后一个数据库可以对应多个实例,例如RAC。为了充分利用所有实例,并且令客户端连接配置简单,ORACLE提出了SERVICE_NAME的概念。该参数直接对应数据库,而不是某个实例。


 SELECT NAME FROM V$DATABASE;        --数据库名
 SELECT instance_name FROM 
V$INSTANCE;    --实例名
 select global_name from global_name;        --服务名

相关推荐

windows开启telnet服务,检测远程服务端口是否可以连通

本文介绍windwos开启telnet服务,telnet服务一般可以用于检测远程主机的某个端口服务是否可以连通,在日常的工作中,我们经常会遇到在本地的windows检测远程服务端口是否可以连通。win...

仅在Web登录新华三交换机条件下启用设备Telnet登录方式

概述Web登录新华三交换机可以在“网络-服务”页面中启用设备Telnet服务或SSH服务,也可以在“设备-管理员”设置管理员用户的可用服务,然而,在设备Web页面中,无法设置lineVTY用户线【l...

思科交换机,路由器如何关闭telnet 开启ssh服务

SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。今天我们就来说说思科交换机,路...

智能化弱电行业常用的DOS命令,掌握了你也能成为...

前言在做智能化弱电项目时,前端摄像头设备安装结束后,我们会对网络摄像头进行调试,调试过程中会遇到前端摄像头没有图像或者图像出来了画面卡顿的现象。我们会采用ping命令来测试网络的连通性和网络承载能力。...

「干货」eNSP模拟器之配置Telnet登录

配置说明:配置Telnet,使R2(模拟PC)通过SW1登录到R1进行管理和配置。操作步骤:system-view##进入系统视图[Huawei]sysnameR1##改名为R1[R1]int...

win11开启telnet服务怎么操作 win11打开telent指令是什么

telnet服务是我们在进行远程连接的时候,必须要打开的一项功能。但是有不少用户们不清楚在windows11系统中怎么开启telnet服务。今天小编就使用详细的图文教程,来给大家说明一下打开telen...

华三(H3C)交换机Telnet的远程登陆

一,配置交换机管理IP[SW1]vlan20//创建管理vlan[SW1]interfacevlan20//进入vlan接口[SW1-Vlanif20]ipaddress192.168....

win10 telnet命令怎么查看端口是否打开

可能大家也会遇到这个问题,win10telnet命令查看端口是否打开的步骤是什么?具体方法如下:1、键盘输入快捷键WIN+R,打开运行窗口。2、输入cmd,点击确定按钮。3、弹出cmd命令行窗...

Windows 7如何打开Telnet功能(win7系统打开telnet)

Windows7默认安装后是没有开启telnet客户端功能的,例如,我们在开始菜单中输入cmd,然后使用telnet命令,会弹出下图提示:‘telnet’不是内部或外部命令,也不是可运行程序或批处理文...

为锐捷路由器交换机开启web和telnet,实现轻松管理

笔者上一篇文章写了关于锐捷二层交换机配置教程,那么接下来讲一下锐捷的路由交换设备配置web、telnet技巧。同样,今天的教程也是基于命令行,比较简单,适合新手小白进行学习。准备工作配置前准备:con...

一文学会telnet命令的用途和使用方法

Telnet是一个古老的远程登录协议,可以让本地计算机获得远程计算机的工作能力。它采用了TCP的可靠连接方式,可以连接任何网络互通的远程计算机。不过由于它采用了明文传输方式,存在安全风险,目前已经很少...

Telnet命令是什么?如何使用?(telnet命令在哪里开启)

telnet命令是一个常用的远程登陆工具,使用它,我们可以快捷地登陆远程服务器进行操作。那么如何使用telnet命令呢?首先,我们需要打开telnet功能,任何电脑默认是关闭此功能的,开启方式如下:打...

win11系统如何开启telnet服务(拷贝版本)

  我们要知道,Telnet协议是Internet远程登陆服务的标准协议,可以使用户在本地计算机上完成远程主机的工作,不过对于一些刚接触win11中文版系统的用户来说,可能还不知道telnet服务在哪...

如何开启telnet客户端(如何开启telnet服务)

Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式,Telnet是常用的远程控制Web服务器的方法。工作中经常用到telnet客户端,但在windows...

Telnet 是什么,如何启用它?(telnet有什么用)

对于Internet等TCP/IP网络,Telnet是一个终端仿真程序。Telnet软件在您的系统上运行并将您的个人计算机链接到网络服务器。它将所有数据转换为纯文本这一事实被认为是易受...

取消回复欢迎 发表评论: