如何在Linux系统中创建SPFILE文件 (linux创建spfile)

SPFILE文件是Oracle数据库参数文件的一种类型,一个数据库只能有一个SPFILE文件,包含了数据库实例的所有参数设置,而且这些参数只能由DBA进行修改。在Oracle 9i及以上版本中,SPFILE替代了早期版本中的PFILE。

在Linux系统下,创建SPFILE文件需要在数据库实例启动的情况下进行,以及使用SQL语句或命令来完成。下面将详细介绍的步骤。

步骤一:启动Oracle数据库实例

在Linux系统下,启动Oracle数据库实例需要使用Oracle用户身份登录,打开终端,输入以下命令:

$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue May 12 16:12:56 2023

Copyright (c) 1982, 2023, Oracle. All rights reserved.

SQL> connect / as sysdba

Connected.

SQL>

登录成功后,输入以下命令启动Oracle数据库实例:

SQL> startup

ORACLE instance started.

Total System Global Area 1468006400 bytes

Fixed Size 2291040 bytes

Variable Size 872421424 bytes

Database Buffers 503316480 bytes

Redo Buffers 11980800 bytes

Database mounted.

Database opened.

执行此命令后,Oracle数据库实例将启动,同时会在数据库的初始化参数中读取SPFILE文件。如果数据库没有设置SPFILE文件,则会读取PFILE文件(在Linux系统中该文件位于$ORACLE_HOME/dbs目录下)。

步骤二:创建SPFILE文件

在数据库实例启动后,即可开始创建SPFILE文件了。在终端中输入以下命令:

SQL> create spfile from pfile;

这个命令将会从$ORACLE_HOME/dbs目录下的PFILE文件中创建SPFILE文件。

SPFILE文件的默认名称为SPFILE.ORA,其中为实例的名称。如果需要指定自定义的SPFILE文件,则必须使用以下命令:

SQL> create spfile=” from pfile;

其中可以是任何你想要创建的文件路径。

创建SPFILE文件后,可以使用以下命令来验证SPFILE文件是否已经成功创建:

SQL> show parameter spfile;

这个命令将会显示SPFILE文件在数据库实例中的路径和文件名。

步骤三:修改SPFILE文件参数

在SPFILE文件创建成功后,可以使用以下命令来修改SPFILE文件中的参数:

SQL> alter system set = scope=spfile;

其中是需要修改的参数名称,是新的参数值。这个命令将会修改SPFILE文件中的参数。当数据库实例重新启动时,它将加载SPFILE文件来应用修改后的参数。

另外,也可以使用以下命令来查看SPFILE文件中的参数:

SQL> show parameter ;

这个命令将会显示SPFILE文件中的参数及其当前值。

相关问题拓展阅读:

如何修改linux中oracle数据库的更大连接数

oracle的配置文件里面添加max_connection=20230;

有权限的用户登陆,姿咐如SYstem等

alter system set process=XXXX scope=spfile ;

然后重枣樱新启动凳册丛数据库

个人经验总结:Oracle10g手工创建数据库

创建目录

  mkdir d:\oracle\product\ \database

  mkdir e:\oracle\admin\Ora g\bdump

  mkdir e:\oracle\admin\Ora g\cdump

  mkdir e:\oracle\admin\Ora g\create

  mkdir e:\oracle\admin\Ora g\pfile

  mkdir e:\oracle\admin\Ora g\udump

  mkdir e:\oracle\flash_recovery_area

  mkdir e:\oracle\oradata

  mkdir e:\oracle\oradata\Ora g

  

  

   生成windows服务 创建密码文件 在cmd命令下手数运行

  set ORACLE_SID=dbca 绿色部分设置oracle 实例名为 为ora g

  d:\oracle\product\ \DB_ \bin\oradim exe new sid ORA G startmode manual spfile d:\oracle\product\ \DB_ \bin\oradim exe edit sid ORA G startmode a spfile

   创建一个实例名为dbca 并且有手动启动方式改为自动启动

  

  d:\oracle\product\ \DB_ \bin\orapwd exe file=d:\oracle\product\ \db_ \PWDOra g ora password=sysPassword force=y

   用oracle自带的orapwd 为sys用户创建一个默认的密码为sysPassword

  

  

   执行创建数据库脚本

  D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\CreateDB sql

  D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\CreateDBFiles sql

  D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\CreateDBCatalog sql

  D:\oracle\ora \bin\sqlplus /nolog @D:\oracle\admin\dbca\scripts\postDBCreation sql

   黑体部分就是创建数据库纯培要调用的脚本

  

   之一 CreateDB sql

  connect SYS/change_on_install as SYSDBA 这是刚刚我们设置的密码以sysdba身份连接到数据库

  connect SYS/change_on_install as SYSDBA 这是刚刚我们设置的密码以sysdba身份连接到数据库

  set echo on

  spool D:\oracle\ora \assistants\dbca\logs\CreateDB log 写日志

  startup nomount pfile= D:\oracle\admin\dbca\scripts\init ora ; 调用参数文件 启动数据库到只装载实例阶段

  CREATE DATABASE dbca

  MAXINSTANCES

  MAXLOGHISTORY

  MAXLOGFILES

  MAXLOGMEMBERS

  MAXDATAFILES 控制文件记录的相关更大日志数 日志组 更大毕裤首数据文件数等限制

  DATAFILE D:\oracle\oradata\dbca\system dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED

  EXTENT MANAGEMENT LOCAL

  DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE D:\oracle\oradata\dbca\temp dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED

  UNDO TABLESPACE UNDOTBS DATAFILE D:\oracle\oradata\dbca\undotbs dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED 创建系统 临时 回滚 表空间ITPUB个人空间!dJ l {!i W r f

  CHARACTER SET ZHS GBK

  NATIONAL CHARACTER SET AL UTF 字符集

  LOGFILE GROUP ( D:\oracle\oradata\dbca\redo log ) SIZE K

  GROUP ( D:\oracle\oradata\dbca\redo log ) SIZE K

  GROUP ( D:\oracle\oradata\dbca\redo log ) SIZE K; 创建日志文件租和成员

  spool off

  exit;

  

  

   第二 CreateDBFiles sql

  

  connect SYS/change_on_install as SYSDBA

  set echo on

  spool D:\oracle\ora \assistants\dbca\logs\CreateDBFiles log

  CREATE TABLESPACE INDX LOGGING DATAFILE D:\oracle\oradata\dbca\indx dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

  CREATE TABLESPACE TOOLS LOGGING DATAFILE D:\oracle\oradata\dbca\tools dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ;

  CREATE TABLESPACE USERS LOGGING DATAFILE D:\oracle\oradata\dbca\users dbf SIZE M REUSE AUTOEXTEND ON NEXT K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; 创建相关用户要用到的表空间

  spool off

  

   第三:CreateDBCatalog sql

   创建system数据字典 存放到system表空间 相关表 视图等

  connect SYS/change_on_install as SYSDBA

  set echo on

  spool D:\oracle\ora \assistants\dbca\logs\CreateDBCatalog log

  @D:\oracle\ora \rdbms\admin\catalog sql;

  @D:\oracle\ora \rdbms\admin\catexp sql;

  @D:\oracle\ora \rdbms\admin\catblock sql;

  @D:\oracle\ora \rdbms\admin\catproc sql;

  @D:\oracle\ora \rdbms\admin\catoctk sql;

  @D:\oracle\ora \rdbms\admin\owminst plb;

  connect SYSTEM/manager

  @D:\oracle\ora \sqlplus\admin\pupbld sql;

  connect SYSTEM/manager

  set echo on

  spool D:\oracle\ora \assistants\dbca\logs\sqlPlusHelp log

  @D:\oracle\ora \sqlplus\admin\help\hlpbld sql helpus sql;

  spool off

  spool off

  exit;

  

   第四: postDBCreation sql

  

  connect SYS/change_on_install as SYSDBA

  set echo on

  spool D:\oracle\ora \assistants\dbca\logs\postDBCreation log

  @D:\oracle\ora \rdbms\admin\utlrp sql; 编译相关视图 包对象等

  shutdown ; 关闭数据库

  connect SYS/change_on_install as SYSDBA

  set echo on

  spool D:\oracle\ora \assistants\dbca\logs\postDBCreation log

  create spfile= D:\oracle\ora \database\spfiledbca ora FROM pfile= D:\oracle\admin\dbca\scripts\init ora ;

  

   创建服务器参数文件代替文件初始化参数文件 方便有时在不重启数据库的情况下可以使参数生效

  

  从上面可以看到spfile文件的存放位置

  startup ; 启动数据库 创建数据库完成 从上面可以看出 创建数据库有以下 个步骤

  

  Step : 创建相关trace目录文件夹

  

  Step :创建实例 密码 启动方式

  

  Step :创建初始化参数文件 init ora

  

  Step : 连接到实例

  

  Step : 启动实例到nomount状态

  

  Step :创建数据库

  

  Step :创建表空间

  

  Step : 运行脚本创建数据字典

  

  Step : 创建服务器参数文件(这步不是必须的 但oracle建议做这步) 好处会在以后的总结中列出

  

  下面也贴出linux下脚本 和windows下几乎差不多

  

  #!/bin/sh

  

  mkdir /oradata/ora i

  mkdir /oradata/ora i/controlfile

  mkdir /oradata/ora i/redofile

  mkdir /orasys/oracle/admin

  mkdir /orasys/oracle/admin/ora i

  mkdir /orasys/oracle/admin/ora i/bdump

  mkdir /orasys/oracle/admin/ora i/cdump

  mkdir /orasys/oracle/admin/ora i/create

  mkdir /orasys/oracle/admin/ora i/udump

  mkdir /orasys/oracle/admin/ora i/pfile

  

  

  cp init ora /orasys/oracle/product/ /dbs/

  

  export ORACLE_BASE=/orasys/oracle

  export ORACLE_HOME=$ORACLE_BASE/product/

  export ORACLE_SID=ora i

  export ORA_NLS =$ORACLE_HOME/omon/nls/admin/data

  LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

  export LD_LIBRARY_PATH

  export PATH=$PATH:$ORACLE_HOME/bin

  echo Add this entry in the oratab: ora i:/orasys/oracle/product/ :Y

  /orasys/oracle/product/ /bin/orapwd file=/orasys/oracle/product/ /dbs/orapwora i password=change_on_install

  /orasys/oracle/product/ /bin/sqlplus /nolog @/home/oracle/create_script/CreateDB sql

  /orasys/oracle/product/ /bin/sqlplus /nolog @/home/oracle/create_script/CreateDBFiles sql

  /orasys/oracle/product/ /bin/sqlplus /nolog @/home/oracle/create_script/CreateDBCatalog sql

lishixinzhi/Article/program/Oracle/202311/17648

dataguard 可以在linux不同版本实现吗

Linux 安装oracle10g 配置dataguard 介绍和步骤

DataGuard是甲骨文推出的一种高可用性数据库方案,在Oracle 8i之前被称为Standby Database。从Oracle 9i开始,正式更名为Data Guard。它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件。用卜姿户能够在对主数据库影响很小的情况下,实现主备数据改余库的同步。而主备机之间的数据差异只限于在线日志部分,因此被不少企业用作数据容灾解决方案。(以上是度娘解释,本人理解 dataguard设计之初为异地容灾,他的应急切换能提供很好的高可用,但同时对外服务还是只有一台pridb,所以性能未有所提高)此次配置型歼绝为dataguard物理备库更大性能模式。

1)linux操作系统安装并安装oracle10g软件

ps:主库安装数据库软件并建库,备库只需要安装oracle软件不需要建库

以下主库简称pridb备库stydb

linux安装oracle10g传送门:

本次环境:

pridb 172.25.56.149

stydb 172.25.56.150

2)pridb配置

1.查看是否开启归档模式(由于dataguard高性能需要运用到archivelog恢复stydb,所以必须开启)

archive log list

如果没有开启 需将数据库打至mount模式后开启

alter database archivelog;

alter database force logging;(开启强制归档,有时候由于语句not logging 可能未生成redolog)

生成standby controlfile

alter database create standby controlfile as ‘/u01/temp/standbycontrolfile.ctl’;

2.查询pridb如下文件位置

datafile (select name from v$datafile;)

redologfile (select member from v$logfile;)

controlfile (show parameter control_files)

spfile (show parameter spfile)

3.关闭主库shutdown immediate

4.把datafile standbycontrolfile redologfile spfile listener.ora tnsnames.ora passwdfile拷贝至备库相应位置(如果没有相应文件夹,新建同名文件夹)

scp/u01/oradata/WILLSON/ :/u01/oradata/

scp standbycontrolfile.ctl :/u01/oradata/

scp listener.ora tnsnames.ora :/u01/product/10.2.0/db_1/network/admin/

scp orapwWILLSON spfileWILLSON.ora :/u01/product/10.2.0/db_1/dbs/

scp -r WILLSON/ :/u01/admin/

5.配置pridb角色,配置归档日志地址,配置切换模式

alter system set log_archive_config=’DG_CONFIG=(pridb,stydb)’;

alter system set db_unique_name=’pridb’ scope=spfile;

shutdown immediate;

startup mount;

alter system set log_archive_dest_1=’LOCATION=/u01/oradata/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pridb’;

alter system set log_archive_dest_2=’SERVICE=stydb VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=stydb’;

alter system set log_archive_dest_state_1=’enable’;

alter system set log_archive_dest_state_2=’enable’;

alter system set FAL_CLIENT=’pridb’;

alter system set FAL_SERVER=’stydb’;

alter system set standby_archive_dest=’/u01/oradata/archivelog’;

alter system set standby_file_management=’auto’;

6.配置监听

$ more listener.ora

# listener.ora Network Configuration File: /u01/product/10.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = WILLSON)

(ORACLE_HOME = /u01/product/10.2.0/db_1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.149)(PORT = 1521))

)

)

$ moretnsnames.ora

# tnsnames.ora Network Configuration File: /u01/product/10.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

WILLSON =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.149)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = WILLSON)

)

)

pridb =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.149)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = WILLSON)

)

)

stydb =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.150)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = WILLSON)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

3)stydb配置

1.启动备库至mount状态(如果失败查看初始化参数文件和控制文件是否更新)

startup mount;

2.配置备库参数

alter system set log_archive_config=’DG_CONFIG=(pridb,stydb)’;

alter system set db_unique_name=’stydb’scope=spfile;

shutdown immediate

startup mount

alter system set log_archive_dest_1=’LOCATION=/u01/oradata/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=stydb’;

alter system set log_archive_dest_2=’SERVICE=pridb VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=pridb’;

alter system set log_archive_dest_state_1=’enable’;

alter system set log_archive_dest_state_2=’enable’;

alter system set FAL_CLIENT=’stydb’;

alter system set FAL_SERVER=’pridb’;

alter system set standby_archive_dest=’/u01/oradata/archivelog’;

alter system set standby_file_management=’auto’;

alter database force logging;

shutdown immediate

3.配置监听

$ morelistener.ora

# listener.ora Network Configuration File: /u01/product/10.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = WILLSON)

(ORACLE_HOME = /u01/product/10.2.0/db_1)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.150)(PORT = 1521))

)

)

$ more tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/product/10.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

WILLSON =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.150)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = WILLSON)

)

)

pridb =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.149)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = WILLSON)

)

)

stydb =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.56.150)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = WILLSON)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

4)测试配置

pridb:

alter database open;

select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

READ WRITE PRIMARY

stydb

startup;

alter database recover managed standby database disconnect;

select open_mode,database_role from v$database;

OPEN_MODE DATABASE_ROLE

MOUNTEDPHYSICAL STANDBY

同步测试:

pridb:

select sequence#,applied from v$archived_log;

stydb:

select sequence#,applied from v$archived_log;

就此oracle dataguard for linux 配置完成了,dataguard切换测试另有传送门:

linux创建spfile的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux创建spfile,如何在Linux系统中创建SPFILE文件,如何修改linux中oracle数据库的更大连接数,个人经验总结:Oracle10g手工创建数据库,dataguard 可以在linux不同版本实现吗的信息别忘了在本站进行查找喔。


数据运维技术 » 如何在Linux系统中创建SPFILE文件 (linux创建spfile)