Your Site Title

查询

select name from v$database;
select instance_name from v$instance;
show parameter serive_name;
show parameter serive_names; // 集群
show parameter name;

ubuntu 18.04 install oracle dbms

docker search oracle
docker pull registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g
docker images
docker images registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g

<!-- docker volume create oracle-xe-vol -->
<!-- docker run -d -p 1521:1521 --privileged=true --name oracle11-xe -v 'oracle-xe-vol:/u01/app/oracle/oradata' -e ORACLE_ALLOW_REMOTE=true registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g -->

docker run -d -p 1521:1521 --name oracle11-xe registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g


docker exec -it oracle11-xe /bin/bash
su - oracle
sqlplus /nolog;
conn / as sysdba;

create tablespace testhbga datafile '/u01/app/oracle/oradata/XE/testhbga.dbf' size 100m autoextend on next 10m;
create temporary tablespace testhbga_temp tempfile '/u01/app/oracle/oradata/XE/testhbgatemp.dbf' size 50m autoextend on next 10m maxsize 20480m extent management local;
create user testhbga identified by t1e2s3t4hbga default tablespace testhbga;

grant connect,resource,dba to testhbga;

conn testhbga/t1e2s3t4hbga@127.0.0.1:1521/XE


select * from nls_database_parameters where parameter in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
select * from nls_database_parameters;

ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

shutdown immediate;
startup mount;
--限制session
alter system enable restricted session;
--查询相关参数并修改(防止有任务自动启动执行,一般不做也没关系)
show parameter job_queue_processes; -- 记下这个值
show parameter aq_tm_processes; -- 记下这个值
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
 
-- 按需修改nls_characterset,其中INTERNAL_USE表示跳过字符集检查
alter database character set internal_use AL32UTF8;
-- 按需修改nls_nchar_characterset
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE UTF8;
-- 查看修改后字符集
select * from nls_database_parameters;
 
shutdown immediate;
startup mount;
--将相关参数改回原来的值
alter system set job_queue_processes=5;
alter system set aq_tm_processes=1;
Alter database open;

create tablespace testlj datafile '/u01/app/oracle/oradata/XE/testlj.dbf' size 100m autoextend on next 10m;
create temporary tablespace testlj_temp tempfile '/u01/app/oracle/oradata/XE/testljtemp.dbf' size 50m autoextend on next 10m maxsize 20480m extent management local;
create user testlj identified by testlj#098 default tablespace testlj;

grant connect,resource,dba to testlj;

create tablespace ZHENGWU_DATA datafile '/u01/app/oracle/oradata/XE/ZHENGWU.dbf' size 100m autoextend on next 10m;
create temporary tablespace ZHENGWU_temp tempfile '/u01/app/oracle/oradata/XE/ZHENGWUtemp.dbf' size 50m autoextend on next 10m maxsize 20480m extent management local;
create user zhengwu identified by Zhengwu#456 default tablespace ZHENGWU_DATA;

grant connect,resource,dba to zhengwu;

账号

account: sys as sysdba password: sysdba

apparmor failed to apply profile: write /proc/self/attr/exec: invalid argument: unknown.

apt install apparmor

+ [docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/exec: permission denied\""](https://github.com/docker/for-linux/issues/1129)
+ [apparmor failed to apply profile: write /proc/self/attr/exec: invalid argument: unknown.](https://github.com/docker/for-linux/issues/1199)

ORA-12720: operation requires database is in EXCLUSIVE mode

show parameter cluster_database;
alter system set cluster_database=FALSE scope=spfile sid=’*’;
<!-- shutdown abort; -->
exit;

srvctl status database -d testdb

select userenv('language') from dual;

ORA-29701: unable to connect to Cluster Synchronization Service

$GRID crsctl 命令在这个

spfile文件在asm中, asm是oracle配置信息数据库, asmcmd在oracle下
asmcmd 
startup
ls
show parameter spfile;
/DATA/{dbname}/PARAMETERFILE/spfile
cp /DATA/{dbname}/PARAMETERFILE/spfile /tmp/spfile
create pfile='/tmp/pfile' from spfile

ps -ef |grep crsd.bin 

crsctl stat res -t -init
crsctl start res ora.crsd -init

crsctl enable has / by root

./crsctl check crs
	
ps -fea |grep crsd.bin
crsctl start res ora.crsd -init

CRS-4639: Could not contact Oracle High Availability Services

[root@b1 grid]# cd /u01/app/11.2.0/grid/crs/install
[root@b1 install]#  ./roothas.pl -deconfig -force -verbose

[root@b1 install]# cd /u01/app/11.2.0/grid/
[root@b1 grid]# ./root.sh

crsctl check css
crsctl check has
crsctl stat res -t [-init]
crsctl disable has
crsctl enable has
crsctl modify resource "ora.cssd" -attr "AUTO_START=1"
crsctl modify resource "ora.diskmon" -attr "AUTO_START=1"


启动ASM 实例

[grid@ node1 ~]$echo $ORACLE_SID
+ASM

[grid@ node1~]$ sqlplus / as sysasm

SQL>  startup;

SQL>  select instance_name,status from v$instance;

ORA-39082对象创建时出现编译错误

ORA-28040: No matching authentication protocol

需要更新ojdbc
或者oracle修改配置  $ORACLE_HOME/network/admin/sqlnet.ora SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

Reference