下载oracle19c
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
找到对应版本下载 然后上传到服务器/opt目录下

进入opt目录

下载依赖包:

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

安装包 yum localinstall 方式 从本机目录安装软件包 并自动安装相关依赖

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

安装完成:

总计:6.9 G
安装大小:6.9 G
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : oracle-database-ee-19c-1.0-1.x86_64                                                                                                  1/1
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service configuration script as root: /etc/init.d/oracledb_ORCLCDB-19c configure验证中      : oracle-database-ee-19c-1.0-1.x86_64                                                                                                  1/1 已安装:oracle-database-ee-19c.x86_64 0:1.0-1                                                                                                                  完毕!

此时 安装完了之后现在只是安装上了oracle软件,但是还没有数据库
我们要创建数据库
在这里创建数据库有两种方式一种是它安装完给的方法执行这个脚本
还有一种是在桌面环境下的终端里执行输入dbca会弹出可视化的安装界面
我们用脚本安装数据

修改配置文件

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

创建并启动oracle实例 等待Oracle数据库执行初始化操作即可

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

增加环境变量

vim /etc/profile.d/oracle19c.sh
# 添加以下内容
export  ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export  PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin
export  ORACLE_SID=ORCLCDB
#使环境变量生效
source /etc/profile

修改oracle 用户密码

passwd oracle

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

su oracle

登入oracle 进行相关操作

sqlplus / as sysdba

查看pdb信息

show pdbs

如果重启服务器 启动oracle服务

SQL> startup

启动监听器

cd $ORACLE_HOME/bin

lsnrctl start

如果报错:

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 30-MAR-2022 14:46:36Copyright (c) 1991, 2019, Oracle.  All rights reserved.Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 19.0.0.0.0 - Production
NL-00280: error creating log stream /opt/oracle/product/19c/dbhome_1/network/log/listener.logNL-00278: cannot open log fileSNL-00016: snlfohd: error opening fileLinux Error: 13: Permission deniedListener failed to start. See the error message(s) above...

查看目录 /opt/oracle/product/19c/dbhome_1/network/log 是否有权限
修改权限:

chmod -R 777 /opt/oracle/product/19c/dbhome_1/network/log

配置开机自启
需要先修改一下 oracle 的启动脚本配置:

vi /etc/oratabORCLCDB:/opt/oracle/product/19c/dbhome_1:N
# 改为
ORCLCDB:/opt/oracle/product/19c/dbhome_1:Y

然后设置一下 数据库的启动命令

vi /usr/bin/oracle.sh  增加的内容为: #! /bin/bash #  script  For oracle19c.service/opt/oracle/product/19c/dbhome_1/bin/lsnrctl start/opt/oracle/product/19c/dbhome_1/bin/dbstart /opt/oracle/product/19c/dbhome_1

然后设置这个文件的读写权限

chmod 777 /usr/bin/oracle.sh

设置一个 oracle19c.service

vi /etc/systemd/system/oracle19c.service
# 添加以下内容
[Unit]
Description=Oracle19c
After=syslog.target network.target
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=oneshot
RemainAfterExit=yes
User=oracle
Environment="ORACLE_HOME=/opt/oracle/product/19c/dbhome_1"
ExecStart=/usr/bin/oracle.sh
[Install]
WantedBy=multi-user.target

设置开机自动启动

systemctl enable oracle19c

重启测试

reboot
systemctl status oracle19c

创建用户:
确保再CDB环境下

select name,cdb from v$database;

建用户

create user C##remote identified by 123456789;

配置权限

SQL> grant connect,resource,create indextype,create job,create sequence,create session,create table,create view,create procedure,unlimited tablespace,insert any table,select any table,update any table,delete any table to C##remote;

删除用户

drop user C##REMOTE cascade;

如果删除报 ORA-01940提示 “无法删除当前已连接用户”
处理方式:

# 先锁定用户 unlock 解锁
alter user C##REMOTE account lock;
# 查询进程号
select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##REMOTE';
# 删除对应的进程
alter system kill session'391,2314';
# 在删除用户
drop user C##REMOTE cascade;

注意:
使用navicat链接
sid 添加 ORCLCDB

权限介绍:
(1)Connect 角色,是授予最终用户的典型权利,最基本的权利,能够连接到ORACLE数据库中
(2)Resource 角色,是授予开发人员的,能在自己的方案中创建表、序列、视图等。
(3)DBA角色,是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。
unlimited tablespace 如果不给此权限 则不能使用表空间报下边的异常
对于普通用户,如果操作表时报错“[Err] ORA-01950: 对表空间 ‘xxx’ 无权限”,需要执行一下语句

alter user c##sl3 quota unlimited on 表空间名;

expdb数据泵方式备份数据

# 创建目录 存储备份文件
mkdir -p /opt/databack/expdp_dmp
# 赋予777权限
chmod -R 777 databack
# 切换oracle用户
su oracle
# 进入oracle
sqlplus / as sysdba# 创建dmp导出目录
create directory expdp_dmp as '/opt/databack/expdp_dmp'
# 查看是否创建成功
select * from dba_directories
# 为创建的目录赋权限 如果用sysdba账户备份则不需要此步 目录名 to 需要赋值的用户名(比如该用户需要备份自己的数据)
grant read,write on directory expdp_dmp to C##remote;
# 退出sqlplus
exit;
# 执行备份 此账号只能备份自己表空间
expdp C##remote/123456789 directory=expdp_dmp dumpfile=C##remote20220331.dmp logfile=C##remote20170417.log# 恢复数据
impdp C##remote/123456789 directory=expdp_dmp dumpfile=C##remote20220331.dmp

全库导出 使用system用户操作 需在oracle用户下进行

# 切换oracle用户
su oracle
# 使用 sys用户登录sqlplus 操作
ALTER USER SYSTEM IDENTIFIED BY "123456789";
# 退出 使用system用户登录 测试修改是否成功
sqlplus system/123456789@ORCLCDB

导出可有多种方式 system/123456789@ORCLCDB 登录方式 @ORCLCDB 可以不加
1、“full=y”,全量导出导入数据库

# 全量导出
expdp system/123456789 dumpfile=full.dmp directory=expdp_dmp full=y logfile=full.log# 全量导入
impdp system/123456789 dumpfile=full.dmp directory=expdp_dmp full=y

2、schemas按用户导出 导入

# 导出schemas
expdp system/123456789 schemas=C##remote dumpfile=C##remote.dmp directory=expdp_dmp logfile=C##remote.log# 同名用户导入,从用户A导入到用户A
impdp system/123456789 schemas=C##remote dumpfile=C##remote.dmp directory=expdp_dmp logfile=impdp.log;

3、按表空间导出

# 查看当前用户默认表空间
select username,default_tablespace from user_users;
# 查看全部表空间
select tablespace_name from dba_tablespaces;
# 查看全部用户
select username from dba_users;# 按表空间导出
expdp system/123456789 tablespaces=USERS dumpfile=USERS_tablespace220332.dmp directory=expdp_dmp logfile=USERS220332.log# 导入表空间
impdp system/123456789 tablespaces=USERS directory=expdp_dmp dumpfile=USERS_tablespace220332.dmp logfile=impdp.log

导出表 多个表用逗号 table1,table2

# 导出表 注意:使用用户账号导出自己的表
expdp C##remote/123456789 tables=USER_TABLE dumpfile=USER_TABLE.dmp directory=expdp_dmp logfile=USER_TABLE.log# 导入表
impdp C##remote/123456789 tables=USER_TABLE dumpfile=USER_TABLE.dmp directory=expdp_dmp logfile=USER_TABLE.log

从A用户中把表table1和table2导入到B用户中

impdp B/passwd tables=A.table1,A.table2 remap_schema=A:B directory=expdp_dmp dumpfile=expdp.dmp logfile=impdp.log;

追加数据

# table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE
impdp system/123456789 directory=expdp_dmp dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log;

并行操作
可以通过 PARALLEL 参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数 dumpfile 应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:
注意:dumpfile 参数拥有一个通配符 %U,它指示文件将按需要创建,格式将为expCASES_nn.dmp,其中nn 从 01 开始,然后按需要向上增加。

# 多线程导出
expdp system/123456789 dumpfile=full_%U.dmp directory=expdp_dmp full=y  parallel=4 logfile=full212.log# 多线程导入
impdp system/123456789 dumpfile=full_%U.dmp directory=expdp_dmp full=y  parallel=4 logfile=full212.log

shell脚本 执行定时任务

#!/bin/sh
echo "备份脚本开始启动..."
# 修改服务器编码与oracle一致 防止乱码
export LANG=en_US.UTF-8
export NLS_LANG="AMERICAN_AMERICA".AL32UTF8# 5天之前日期 用于删除
DELTIME=`date -d "5 days ago" +%Y_%m_%d`# 今天日期 用于备份
BAKUPPREFIX=`date +%Y_%m_%d_%H_%M_%S`_full
# 设置账号密码
BAKUSER=system
BAKPASS=123456789DATA_DIR=/opt/databack/expdp_dmpecho "现在开始进行数据备份..."expdp $BAKUSER/$BAKPASS dumpfile=$BAKUPPREFIX"%U".dmp directory=expdp_dmp full=y  parallel=4 logfile=$BAKUPPREFIX.logecho "数据备份结束..."echo "删除备份数据开始..."rm -rf $DATA_DIR/$DELTIME*.*echo "删除备份数据结束...$DATA_DIR/$DELTIME*.*"echo "备份执行完毕..."

配合crontab使用 执行定时任务

centos7安装19c 并定时备份恢复数据相关推荐

  1. kubeadm安装的Kubernetes etcd备份恢复

    kubeadm安装的Kubernetes etcd备份恢复 [TOC] 1. 事件由来 2018年9月16日台风过后,我的一套kuernetes测试系统,etcd启动失败,经过半天的抢救,仍然无果(3 ...

  2. android 8.0备份,华为手机怎么备份和恢复数据?华为EMUI 8.0系统备份/恢复数据教程...

    华为EMUI 8.0系统备份/恢复数据教程 定期备份数据,保护数据安全.您可以通过四种方式,及时备份手机中的数据: l 备份数据到 microSD 卡:当手机支持插入 microSD 卡时,您可以随时 ...

  3. linux定时备份mysql数据并同步到其他服务器

    (备份还原操作) ###导出数据库 /usr/bin/mysqldump -u root -pwd database > database20180808.sql ###导入数据库 mysql ...

  4. 阿里云mysql数据备份恢复数据到本地mysql(备份+binlog)

    参考:https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186623.4.3.49bf4292RNNrSC 起因:生产环境 ...

  5. mysql恢复数据的步骤_MySQL备份恢复数据的一般步骤

    下面是备份一个数据库的例子: 1.备份前读锁定涉及的表 mysql>LOCK TABLES tbl1 READ,tbl1 READ,- 如果,你在mysqldump实用程序中使用--lock-t ...

  6. ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程

    1.副总裁需要裸恢复的严峻现实 集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复.而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rma ...

  7. oracle 无备份恢复数据文件

    场景:  1.数据库没有备份  2.数据文件损坏  3.不符合使用控制文件和日志文件恢复的场景 1.模拟数据文件损坏 SYS@orcl11g> host cp /etc/passwd /u01/ ...

  8. mysql binlog 备份恢复数据_Mysql结合备份+binlog恢复误删除操作数据

    结合备份+binlog恢复数据. 场景:昨天晚上做了全备,今天上午用户不小心误删除某张表. 解决方案:不建议在原生产环境直接恢复,建议在另一台机器恢复全库+日志,然后导入到生产环境. 1) 创建表se ...

  9. Linux 定时任务 定时备份mysql数据

    首先查看服务器是否安装 crontab crontab 执行 crontab 命令如果报 command not found,就表明没有安装 安装 crontab yum install -y vix ...

最新文章

  1. Elasticsearch 参考指南(脚本)
  2. WCF学习之旅—请求与答复模式和单向模式(十九)
  3. 标记语言 编程语言 脚本语言分别有哪些? 区别是什么?
  4. 点击桌面计算机图打不开,idf,手把手教你怎么解决电脑桌面图标打不开
  5. 全国各高校开学时间汇总!
  6. java图形界面重写坐标_重写自由软件和计算机图形的历史
  7. java class和this_转:java 类名 this 的使用
  8. java char 8192_java.net.ProtocolException:预期229个字节,但收到8192
  9. Pandas to_datetime
  10. 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单
  11. 那些“不顾一切”要搞开源的人,现在怎样了?
  12. 22. Yii 组件属性
  13. 适合小孩接触编程起步的几款软件,从游戏中学习编程
  14. 产品初探(一):面试经验记录
  15. c语言生日快乐音乐程序,89S51演奏生日快乐的歌曲c程序
  16. java.lang.IllegalArgumentException: Unable to create converter for class xxxx
  17. 开幕在即!众星齐聚八泉峡推介会 为山西加油,为二青助力!
  18. 你不知道的华为手机小技巧,个个都非常好用,学会可以用一年
  19. 我对SOA的反思:SOA架构的本质
  20. Ubuntu1804安装nginx

热门文章

  1. 移动VR:先定个小目标,比方说换一个OLED屏幕
  2. python求解矩阵_python矩阵运算
  3. 网上开店完全指导手册
  4. 小米12定价如超4000将难获消费者接受
  5. 如何修改gvim光标格式
  6. hackinglab基础关--第七关
  7. acm入门 第二周活动记录(李主持)
  8. 帮你学英文的网站:VOA助你增强英文听力与阅读能力
  9. Java Stream流的使用
  10. 纯css实现三角形--详细原理