C#调用bat和sql文件实现修改oracle数据库的内存大小

cs文件源码:

using CCWin;
using FastColoredTextBoxNS;
using HuiTong;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace htydDataBaseMoniterTool.databaseFrm
{
    public partial class dataBaseMerroy : CCSkinMain
    {
        public dataBaseMerroy()
        {
            InitializeComponent();
        }

        #region 修改内存
        private string updateMerroy() 
        {
            // 获取当前的程序的debug路径
			// strDePath为传入merroy.bat的第一个参数,表示sql文件的路径
            string strDePath = System.Environment.CurrentDirectory + "\\backUp";
			// strPath为merroy.bat文件的路径
            string strPath = strDePath + "\\merroy.bat";

            // 新建进程
            Process process = new Process();
            // 向.bat文件传参,strDePath + " " + txtMerroy.Text + "M":表示传入两个参数以空格的形式隔开
            ProcessStartInfo pi = new ProcessStartInfo(strPath, strDePath + " " + txtMerroy.Text + "M");

            pi.UseShellExecute = false;
			// 如果出不来效果可以将下面的这一行注释,并将48行的代码一并注释
            pi.RedirectStandardOutput = true;
            process.StartInfo = pi;
            // 设置不显示cmd运行界面,为了调试方便可自行将下面的代码注释
            process.StartInfo.CreateNoWindow = true;
            process.Start();
            process.WaitForExit();

            //获取cmd窗口的输出信息
            string output = process.StandardOutput.ReadToEnd();
            process.Close();
            return output;
        }
        #endregion
    }
}

merroy.bat文件代码

@echo off
echo %1  %2
sqlplus / as sysdba @%1\merroy.sql %2
exit

merroy.sql文件源码

alter system set sga_max_size=&1 scope=spfile;
alter system set sga_target=&1 scope=spfile;
shutdown immediate;
startup;
exit;

merroy.bat的代码如下
@echo off
echo %1  %2
sqlplus / as sysdba @%1\merroy.sql %2
exit

说明:%1  %2表示为两个参数,再用代码调用此文件时需要传入两个参数,%1 表示merroy.sql文件的路径,%2 表示传入merroy.sql文件的参数(修改内存的大小)

merroy.sql的代码如下
alter system set sga_max_size=&1 scope=spfile;
alter system set sga_target=&1 scope=spfile;
shutdown immediate;
startup;
exit;

说明:&1 表示由merroy.bat文件传入的参数,表示要修改的内存的大小;
alter system set sga_max_size=&1 scope=spfile  表示修改sga_max_size参数;
alter system set sga_target=&1 scope=spfile  表示修改sga_target参数;
shutdown immediate 关闭数据库;
startup  启动数据库
exit 退出


备注:
1、修改oracle数据库内存实际上修改的是sga_max_size这个参数,
,在修改内存时请参照电脑内存合理修改,在修改内存后可能会
出现内存溢出不能启动oracle的情况,出现这种情况后请修改如
下文件'D:\oracle\database\SPFILEORCL.ORA'(请参照oracle
数据库的安装路径)的sga_max_size这个参数,将参数改回原来
的值或者偏小一点的值。
2、数据库查询sga_max_size和sga_target的sql语句如下:
select * from v$parameter where name like 'sga%';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值