32Windows 上Oracle突破1.7G内存限制(一)

    技术2022-05-20  74

    系统环境 :

    Windows 2003 32

    CPU 8核

    内存 16G

    系统设置

    1 、修改 C:/boot.ini ,增加 /3GB /PAE

    备注:在C盘下看不到boot.ini文件,请设置工具--文件夹选项--查看选项卡相关选项

    boot.ini内容如下:

    [boot loader]

    timeout=30

    default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS

    [operating systems]

    multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Windows Server 2003, Enterprise" /3GB /PAE /noexecute=optout /fastdetect

    说明: /3GB enables a single process to attach 3GB of memory.

    /PAE enables access to memory above 4GB to be mapped for a process.

    这两个参数可以一起使用,也可以单独使用。

    if mem<=4G, 就只需要设置 /3GB 即可

    if mem> 4G,/3GB /PAE 可以同时设置(这个时候最大只能使用到 16G ,如果要使用更多的内容,需要去掉 /3GB 参数)

    2 、授权:给运行 Oracle 数据库的操作系统帐户,授予 "Lock Pages in Memory" 的系统权限

           开始 -- 控制面版 - 管理工具 - 本地安全策略 - 用户权限分配 - 选种内存中锁定页面 - 添加用户。

           说明:运行 Oracle 数据库的操作系统帐户默认为本地用户。一般都为 administrator. 所以把 administrator 添加进去就 OK 了。

    3 、修改注册表, Local_Machine/ software/oracle-home0 中加入 AWE_WINDOW_MEMORY, 值為 1073741824( 此为缺省值为 1G )

    4 、重新启动系统

    配置oracle启动文档

    5 、启动 oracle 实例,创建测试 pfile 文件

           运行 -cmd-type "sqlplus"-type "sys as sysdba"-type 密码

           create pfile = 'c:/initest.ora' from spfile;

    6 、关闭 oracle 例程。

                  SQL> shutdown immediate

                         数据库已经关闭。

                         已经卸载数据库。

                         ORACLE 例程已经关闭。

    7 、修改测试测试 pfile 文件

           打开 initest.ora 文件,添加下面内容:

           *.USE_INDIRECT_DATA_BUFFERS = TRUE

           *.DB_BLOCK_BUFFERS = 655360

           *.statistics_level='ALL'

           *.lock_sga=TRUE

           *.pre_page_sga=TRUE

           *.shared_pool_size=814572800

           并修改 *.sga_target 使其植为“ 0

           保存

    8 、用修改后的测试 pfile 文件启动 oracle 例程

           SQL> startup pfile='c:/initest.ora';

           ORACLE 例程已经启动。

           Total System Global Area 6232735744 bytes

           Fixed Size                  1249392 bytes

           Variable Size             855642000 bytes

           Database Buffers         5368709120 bytes

           Redo Buffers                7135232 bytes

           数据库装载完毕。

           数据库已经打开。

    9 、如果启动没有问题,可以用测试 pfile 文件创建 spfile 文件

                  SQL> create spfile from pfile ='c:/initest.ora';

                  文件已创建。

    10 、关闭 ORACLE 例程后再用 spfile 文件启动 ORACLE 例程

       SQL> shutdown immediate

    数据库已经关闭。

    已经卸载数据库。

    ORACLE 例程已经关闭。

    SQL> startup

    ORACLE 例程已经启动。

    Total System Global Area 6232735744 bytes

    Fixed Size                  1249392 bytes

    Variable Size             855642000 bytes

    Database Buffers         5368709120 bytes

    Redo Buffers                7135232 bytes

    数据库装载完毕。

    数据库已经打开。

    该帖并没有对相关参数和原理做过多阐述,如果有兴趣可以到网上找找相关参数和原理说明。


    最新回复(0)