1、Docker、Docker-Compose安装
1 2 | https: //www .cnblogs.com /a120608yby/p/9883175 .html https: //www .cnblogs.com /a120608yby/p/14582853 .html |
2、基于Docker-Compose部署Oracle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # vim docker-compose.yml version: '3.4' services: oracledb: image: container-registry.oracle.com /database/enterprise :19.3.0.0 container_name: oracledb restart: unless-stopped ports: - 1521:1521 - 5500:5500 networks: - ops_default environment: ORACLE_PWD: "Admin-123456" ORACLE_EDITION: enterprise volumes: - . /oradata : /opt/oracle/oradata - /etc/localtime : /etc/localtime :ro networks: ops_default: external: true |
3、启动服务
1 | docker compose up -d |
4、查看服务启动状态
1 | docker-compose ps |
5、访问
1 | 连接地址:部署主机的IP:1521 /orclcdb |
6、表空间查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | SELECT b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes / 1024 / 1024 大小m, (b.bytes - SUM(nvl(a.bytes, 0))) / 1024 / 1024 已使用m, substr((b.bytes - SUM(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率 FROM dba_free_space a, dba_data_files b WHERE a.file_id = b.file_id GROUP BY b.tablespace_name, b.file_name, b.bytes ORDER BY b.tablespace_name |
7、创建表空间及用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 切换到oracle用户 su - oracle # 登录sys用户 sqlplus / as sysdba # 创建临时表空间 create temporary tablespace temp1 tempfile '/app/oracle/oradata/orcl/temp1.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local ; # 创建数据表空间 create tablespace data1 logging datafile '/app/oracle/oradata/orcl/data1.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local ; # 创建用户并指定表空间 create user user1 identified by password default tablespace data1 temporary tablespace temp1; # 给用户授予权限 grant connect,resource,dba to user1; |
8、创建备份目录对象并备份
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # 创建备份目录对象 CREATE OR REPLACE DIRECTORY backup_dir AS '/home/oracle/backup' ; # 赋予读写该目录的权限 GRANT READ, WRITE ON DIRECTORY backup_dir TO user1; # 查看已经创建的目录对象和对应的路径 SELECT * FROM DBA_DIRECTORIES; # 删除不需要的目录对象 DROP DIRECTORY backup_dir; # 备份脚本 #!/bin/bash # USER= "user1" PASS= "password" DB= "orclcdb" DATE=$( date +%Y%m%d) DUMPFILE= "$USER-$DATE.dmp" LOGFILE= "$USER-$DATE.log" mkdir -p $DIR expdp $USER/$PASS@$DB directory=backup_dir dumpfile=$DUMPFILE logfile=$LOGFILE schemas=$USER gzip $DIR/$DUMPFILE find $DIR -name "*.gz" -mtime +7 - exec rm -f {} ; |
9、数据恢复
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 切换到oracle用户 su - oracle # 登录sys用户 sqlplus / as sysdba # 创建与备份时一致的目录对象 CREATE OR REPLACE DIRECTORY backup_dir AS '/home/oracle/backup' ; # 赋予读写该目录的权限 GRANT READ, WRITE ON DIRECTORY backup_dir TO user1; # 导入数据 impdp usre1 /password @orclcdb directory=backup_dir dumpfile=user1-20230921.dmp logfile=user1-20230921.log |
参考:https://container-registry.oracle.com/ords/ocr/ba/database/enterprise
分类:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)