分类目录归档:ORACLE

oracle 19c学习(2)—导入10g数据库dmp文件

1、执行
CREATE USER c##posp IDENTIFIED BY posp;
ALTER USER c##posp QUOTA UNLIMITED ON USERS;
GRANT "CONNECT" TO c##posp;
GRANT "RESOURCE" TO c##posp;
GRANT CREATE ANY INDEX TO c##posp;
GRANT CREATE VIEW TO c##posp;
GRANT CREATE SESSION TO c##posp;
grant read,write on directory dmpdir to c##posp;

impdp c##posp/posp schemas=posp3 remap_schema=posp3:c##posp directory=dmpdir dumpfile=expdp_posp3.dmp logfile=impdp.log job_name=my_jod;

2、导入过程中提示错误
ORA-02374: conversion error loading table "C##POSP"."TBL_IPC_DFT_DSP"
ORA-12899: value too large for column IPC_DFT (actual: 266, maximum: 256)

ORA-02372: data for row: IPC_DFT : 0X'B9A4C9CCD2F8D0D0B3E5D5FDBDBBD2D7C7EBC7F32020202020'
因为字符集不一样
目标数据库字符集:al32utf8
源数据库字符集:zhs16gbk

没办法。。。

oracle 19c学习(1)—CentOS7 rpm包安装oracle19c

oracle19c相当于10g、11g后的12号版本的长期支持版,并且提供了rpm包安装,大大简化了安装过程

1、下载预安装包
wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

2、下载oracle 19c
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c

3、安装预安装包
yum -y localinstall /root/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
会自动安装oracle的依赖包

4、安装oracle
yum -y localinstall /root/oracle-database-ee-19c-1.0-1.x86_64.rpm

继续阅读oracle 19c学习(1)—CentOS7 rpm包安装oracle19c

oracle报错

1、报错
Long Message:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory

解决办法:原因是数据库连接只有150,增大数据库连接数

2、重新连接,又报错
Long Message:
ORA-01033: ORACLE initialization or shutdown in progress

解决办法:因为open_mode是mounted状态,改成opened状态

oracle生成报表数据

Oracle Database 10g提供了一个新的工具:(AWR:Automatic Workload Repository)。AWR实质上是一个Oracle的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题

1、查看快照间隔时间
select * from dba_hist_wr_control;
查询结果
DBID(数据库ID):1554014627
SNAP_INTERVAL(快照采样频率):+00000 00:10:00.0
RETENTION(数据保留时间):+00008 00:00:00.0
TOPNSQL:DEFAULT

2、生成方法
命令:
sqlplus / as sysdba;
@?/rdbms/admin/awrrpt

继续阅读oracle生成报表数据

oracle关闭归档模式

测试环境一个oracle数据库,因为归档日志满了,警告信息把磁盘写满。清理日志后,数据库启动不了了,想先关闭归档模式启动下,然后清理归档日志。

1、首先关闭数据库
shutdown immediate;

2、登录
sqlplus / as sysdba;

3、mount模式启动数据库
startup mount;

4、归档模式操作
关闭:
alter database noarchivelog;
开启:
alter database archivelog;

继续阅读oracle关闭归档模式

Oracle归档日志满了的问题

Oracle归档日志满了,狂打警告导致磁盘满了的问题
现象是oracle连接报错:ORA-00257: archiver error. Connect internal only, until freed.
登录服务器查看磁盘满了,原因是归档日志满了

1、登录
su - oracle
sqlplus /nolog
connect /as sysdba

2、检查flash recovery area的使用情况
select * from V$FLASH_RECOVERY_AREA_USAGE;
已经占用了99.62%

3、查询日志目录位置
show parameter recover;
db_recovery_file_dest /oracle/app/oracle/fast_recovery_area

4、备份(测试环境略过)

5、在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放
rman target sys/pass
检查一些无用的archivelog
RMAN> crosscheck archivelog all;
删除截止到前一天的所有archivelog
RMAN> delete archivelog until time 'sysdate-1';

6、删除alert日志
/oracle/app/oracle/diag/rdbms/posp/airtrip/alert下
/oracle/app/oracle/diag/tnslsnr/HKDB01/listener/alert下
的log_xxx.xml文件
rm -rf log_*.log

参考资料:
https://blog.csdn.net/cw370008359/article/details/51023794

Oracle缩小表空间大小

1、碎片整理
合并表空间的碎片增加表空间的连续性
alter tablespace POSP_DATA coalesce;

2、缩小表空间大小
大小不能小于数据文件中的所处的最大位置
alter database datafile '/oradata/posp/posp_data16.dbf' RESIZE 2048M;

3、查询表空间使用率
select a.tablespace_name as tablespace, total, free,(total-free) as usage from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name;

TABLESPACE TOTAL FREE USAGE
--------------------
SYSAUX 980 48.6875 931.3125
UNDOTBS1 250 218.75 31.25
POSP_DATA 32768 31643.875 1124.125
USERS 5 3.6875 1.3125
SYSTEM 1730 7.1875 1722.8125
POSP_IDX 4096 3999.8125 96.1875

Oracle重建控制文件

数据库启动报错:
ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)
原因为控制文件损坏,之前清理文件的时候误删了,无奈网上找了个文章硬着头皮上,重建控制文件

1、查询数据库版本
SQL> select * from v$version;

BANNER
--------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production

2、查询控制文件位置
SQL> show parameter control_files
NAME TYPE VALUE
--------------------
control_files string /oradata/posp/control01.ctl, /oracle/app/oracle/fast_recovery_area/posp/control02.ctl

3、删除控制文件
rm /oradata/posp/control01.ctl
rm /oracle/app/oracle/fast_recovery_area/posp/control02.ctl

4、启动
SQL> shutdown abort;
SQL> startup nomount;

5、查询语言
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------
AMERICAN_AMERICA.US7ASCII

继续阅读Oracle重建控制文件