新建Oracle 数据库的Shell+SQL脚本

简介: 不用图形界面,也不用DBCA的静默方式,下面是用Shell+SQL创建Oracle数据库的脚本。

不用图形界面,也不用DBCA的静默方式,下面是用Shell+SQL创建Oracle数据库的脚本。

创建12C和11G的数据库的脚本

Usage: ./create_ora11g.sh <ORACLE_SID>
create_ora11g.sh
#!/bin/bash
# check SID
if [ "$#" -ne "3" ]; then
    echo "USAGE: $0 <ORACLE_SID> <ORADATA> <PASSWORD>"
    exit 1
fi
SID=$1
ORADATA=`mkdir -p $2 && cd $2 && pwd`
PASSWD=$3
export ORACLE_SID=$SID
# check ORACLE_BASE
if [ -z "$ORACLE_BASE" ]; then
    echo "ERROR: please set ORACLE_BASE"
    exit 1
fi
# check ORACLE_HOME
if [ -z "$ORACLE_HOME" ]; then
    echo "ERROR: please set ORACLE_HOME"
    exit 1
fi
# check sqlplus
if [ -z "`which sqlplus`" ]; then
    export PATH=$ORACLE_HOME/bin:$PATH
    if [ -z "`which sqlplus`" ]; then
        echo "ERROR: no sqlplus found in $ORACLE_HOME/bin"
        exit 1
    fi  
fi
# create dir
echo creating directories ...
mkdir -p -m 750 $ORADATA/$SID
mkdir -p -m 750 $ORACLE_BASE/diag/rdbms/$SID/$SID/trace
mkdir -p -m 750 $ORACLE_BASE/diag/rdbms/$SID/$SID/cdump
mkdir -p -m 750 $ORACLE_BASE/flash_recovery_area
mkdir -p -m 750 $ORACLE_BASE/admin/$SID/adump
# create password file
echo creating password file ...
rm -f $ORACLE_HOME/dbs/orapw$SID
orapwd file=$ORACLE_HOME/dbs/orapw$SID password=$PASSWD entries=9
# create pfile
echo creating pfile ...
PFILE=/tmp/init$SID.ora
cat > $PFILE << EOD
*.audit_file_dest='$ORACLE_BASE/admin/$SID/adump'
*.control_files='$ORADATA/$SID/control01.ctl','$ORADATA/$SID/control02.ctl','$ORADATA/$SID/control03.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='$SID'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=${SID}XDB)'
*.open_cursors=3000
*.processes=1500
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=1238860800 # 1200M
*.sga_target=1238860800  # 1200M
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
EOD
# startup sqlplus and create db
echo creating database ...
sqlplus / as sysdba > /dev/null 2>&1 <<EOD
set echo on
spool create_$SID.log
startup nomount pfile='$PFILE';
create spfile from pfile='$PFILE';
CREATE DATABASE "$SID"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE '$ORADATA/$SID/system01.dbf'
    SIZE 325M
    AUTOEXTEND ON NEXT 10M
    EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '$ORADATA/$SID/sysaux01.dbf'
    SIZE 325M
    AUTOEXTEND ON NEXT 10M
  DEFAULT TABLESPACE users
      DATAFILE '$ORADATA/$SID/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$ORADATA/$SID/temp01.dbf'
    SIZE 200M AUTOEXTEND ON MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS1" DATAFILE '$ORADATA/$SID/undotbs01.dbf'
    SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
LOGFILE
    GROUP 1 ('$ORADATA/$SID/redo01.log') SIZE 2G,
    GROUP 2 ('$ORADATA/$SID/redo02.log') SIZE 2G,
    GROUP 3 ('$ORADATA/$SID/redo03.log') SIZE 2G
NOARCHIVELOG
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
USER SYS IDENTIFIED BY "$PASSWD"
USER SYSTEM IDENTIFIED BY "$PASSWD";
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql
startup force
spool off
EOD
echo DONE! Please view create_$SID.log!


如果要创建em需要


emca -config dbcontrol db -repos create

创建一个10G的数据库


#!/bin/bash
# check SID
if [ "$#" -ne "3" ]; then
    echo "USAGE: $0 <ORACLE_SID> <ORADATA> <PASSWORD>"
    exit 1
fi
SID=$1
ORADATA=`mkdir -p $2 && cd $2 && pwd`
PASSWD=$3
export ORACLE_SID=$SID
# check ORACLE_BASE
if [ -z "$ORACLE_BASE" ]; then
    echo "ERROR: please set ORACLE_BASE"
    exit 1
fi
# check ORACLE_HOME
if [ -z "$ORACLE_HOME" ]; then
    echo "ERROR: please set ORACLE_HOME"
    exit 1
fi
# check sqlplus
if [ -z "`which sqlplus`" ]; then
    export PATH=$ORACLE_HOME/bin:$PATH
    if [ -z "`which sqlplus`" ]; then
        echo "ERROR: no sqlplus found in $ORACLE_HOME/bin"
        exit 1
    fi  
fi
# create dir
echo creating directories ...
mkdir -p -m 750 $ORADATA/$SID
mkdir -p -m 750 $ORACLE_BASE/admin/$SID/adump
mkdir -p -m 750 $ORACLE_BASE/admin/$SID/bdump
mkdir -p -m 750 $ORACLE_BASE/admin/$SID/cdump
mkdir -p -m 750 $ORACLE_BASE/admin/$SID/udump
mkdir -p -m 750 $ORACLE_BASE/flash_recovery_area
# create password file
echo creating password file ...
rm -f $ORACLE_HOME/dbs/orapw$SID
orapwd file=$ORACLE_HOME/dbs/orapw$SID password=$PASSWD entries=9
# create pfile
echo creating pfile ...
PFILE=/tmp/init$SID.ora
cat > $PFILE << EOD
$SID.__db_cache_size=92274688 # 88M
$SID.__large_pool_size=8388608 # 8M
$SID.__shared_pool_size=26214400 # 25M
$SID.__streams_pool_size=0
*.audit_file_dest='$ORACLE_BASE/admin/$SID/adump'
*.background_dump_dest='$ORACLE_BASE/admin/$SID/bdump'
*.compatible='10.2.0.1.0'
*.control_files='$ORADATA/$SID/control01.ctl','$ORADATA/$SID/control02.ctl','$ORADATA/$SID/control03.ctl'
*.core_dump_dest='$ORACLE_BASE/admin/$SID/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='$SID'
*.db_recovery_file_dest='$ORACLE_BASE/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=${SID}XDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=47185920 # 45M
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=262144000 # 250M
*.sga_target=142606336 # 136M
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='$ORACLE_BASE/admin/$SID/udump'
EOD
# startup sqlplus and create db
echo creating database ...
sqlplus / as sysdba > /dev/null 2>&1 <<EOD
set echo on
spool create_$SID.log
startup nomount pfile='$PFILE';
create spfile from pfile='$PFILE';
CREATE DATABASE "$SID"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '$ORADATA/$SID/system01.dbf'
    SIZE 50M
    AUTOEXTEND ON NEXT 10M
    EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '$ORADATA/$SID/sysaux01.dbf'
    SIZE 10M
    AUTOEXTEND ON NEXT 10M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '$ORADATA/$SID/temp01.dbf'
    SIZE 20M
UNDO TABLESPACE "UNDOTBS1" DATAFILE '$ORADATA/$SID/undotbs01.dbf'
    SIZE 50M
LOGFILE
    GROUP 1 ('$ORADATA/$SID/redo01.log') SIZE 5M,
    GROUP 2 ('$ORADATA/$SID/redo02.log') SIZE 5M,
    GROUP 3 ('$ORADATA/$SID/redo03.log') SIZE 5M
ARCHIVELOG
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
USER SYS IDENTIFIED BY "$PASSWD"
USER SYSTEM IDENTIFIED BY "$PASSWD";
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
startup force
spool off
EOD
echo DONE! Please view create_$SID.log!



相关文章
|
19天前
|
SQL 数据库 Python
数据库 SQL常用语句
这篇文章是数据库SQL的常用语句指南,涵盖了查询格式、WHERE子句查询条件、多表连接查询、嵌套查询、字符匹配查询以及其他指令如排序、聚集函数、GROUP BY分组、EXIST子查询和外连接等知识点。
|
16天前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
15 1
|
13天前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
26 0
|
16天前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
30 0
|
16天前
|
SQL 数据处理 数据库
|
16天前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
35 0
|
16天前
|
SQL 存储 监控
|
16天前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
26 0
|
16天前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
34 0
|
16天前
|
Java 开发者 前端开发
Struts 2:如何在大型项目中力挽狂澜,成就企业级应用开发的巅峰之作!
【8月更文挑战第31天】在本案例研究中,我们探讨了Struts 2框架在国际贸易管理系统(ITMS)中的应用,展示了其在大型项目中的优势与实践经验。Struts 2凭借其强大的表单处理、灵活的Action配置、拦截器机制及国际化支持,成为构建可扩展、高性能Web应用的理想选择。文章详细介绍了RESTful URL设计、Ajax集成、文件上传与下载等功能实现,并分享了性能优化、安全措施及遇到的问题与解决方案,为开发者提供了宝贵的参考。通过持续集成与新技术的应用,我们不断优化系统,提升开发效率与竞争力。
26 0

推荐镜像

更多