小编Mic*_*eem的帖子

如何在不同的表空间中导入oracle转储

我想将oracle转储导入另一个表空间.

我有一个用户A使用的表空间.我已经撤销了这个用户的DBA并给了他补助连接和资源.然后我用命令抛弃了所有东西

exp a/***owner = a file = oracledump.dmp log = log.log compress = y

现在我想将转储导入用户B使用的表空间B.所以我给了他关于连接和资源的授权(没有DBA).然后我执行了以下导入:

imp b/***file = oracledump.dmp log = import.log fromuser = a touser = b

结果是一个包含大量错误的日志:

IMP-00017:以下语句因ORACLE错误20001失败:"BEGIN DBMS_STATS.SET_TABLE_STATS IMP-00003:ORACLE错误20001遇到ORA-20001:输入值无效或不一致

之后我尝试了相同的导入命令,但选项statistics = none.这导致以下错误:

ORA-00959:表空间'A_TBLSPACE'不存在

该怎么做?

注意:很多列都是CLOB类型.看起来问题与此有关.

注2:oracle版本是9.2,10.1和10.1 XE的混合.但我不认为它与版本有关.

oracle

37
推荐指数
3
解决办法
20万
查看次数

在展开堆栈时嵌套异步方法中的StackOverflowExceptions

我们有很多嵌套的异步方法,看到我们并不真正理解的行为.以这个简单的C#控制台应用程序为例

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace AsyncStackSample
{
  class Program
  {
    static void Main(string[] args)
    {
      try
      {
        var x = Test(index: 0, max: int.Parse(args[0]), throwException: bool.Parse(args[1])).GetAwaiter().GetResult();
        Console.WriteLine(x);
      }
      catch(Exception ex)
      {
        Console.WriteLine(ex);
      }
      Console.ReadKey();
    }

    static async Task<string> Test(int index, int max, bool throwException)
    {
      await Task.Yield();

      if(index < max)
      {
        var nextIndex = index + 1;
        try
        {
          Console.WriteLine($"b {nextIndex} of {max} (on threadId: {Thread.CurrentThread.ManagedThreadId})");

          return await Test(nextIndex, …
Run Code Online (Sandbox Code Playgroud)

.net c# stack-overflow async-await

15
推荐指数
1
解决办法
847
查看次数

FabricNotReadableException是什么意思?我们该如何应对呢?

我们在Service-Fabric上的Stateful Service中使用以下方法.该服务有分区.有时我们从代码的安静中获得FabricNotReadableException.

public async Task HandleEvent(EventHandlerMessage message)
{
    var queue = await StateManager.GetOrAddAsync<IReliableQueue<EventHandlerMessage>>(EventHandlerServiceConstants.EventHandlerQueueName);
    using(ITransaction tx = StateManager.CreateTransaction())
    {
      await queue.EnqueueAsync(tx, message);
      await tx.CommitAsync();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着分区已关闭并正在移动?我们打了一个二级分区?因为在某些情况下还会引发FabricNotPrimaryException.

我见过MSDN链接(https://msdn.microsoft.com/en-us/library/azure/system.fabric.fabricnotreadableexception.aspx).但是做什么呢

表示分区无法接受读取时引发的异常.

意思?分区无法接受读取的情况怎么办?

c# azure-service-fabric

10
推荐指数
1
解决办法
3120
查看次数

工作进程回收,因为它达到了虚拟内存限制

我们为客户提供了一个相当大的(自编)ASP.NET网站.它由一个Web服务,一个Web站点和一个提供图像的Web站点组成,这三个站点都位于自己的虚拟目录中.三个虚拟目录在一个应用程序池中.池具有设置为500兆字节的内存限制(最大虚拟内存和最大已用内存).

但是,即使一次只有一个用户,应用程序池也会遭受很多回收.事件日志消息说:

进程ID为"xxxx"的工作进程为应用程序池"xxxx"提供服务已请求回收,因为它已达到其虚拟内存限制.

但是,使用Process Explorer观察工作进程不会显示任何支持此消息的内容.我应该观察哪些计数器来观察实际上受两种设置限制的内存?

更新1

在任务管理器中观察该过程会显示大约100 MB的"内存使用情况"和"虚拟机大小",仍然会使用上述消息回收该过程.服务器上可用的5 GB物理内存...

更新2

虽然网站相当大,但问题集中在应用程序的一小部分.它执行查询(使用Oracle)并将结果绑定到gridview和转发器webcontrol.结果包括简短描述和图标(通过图像服务网站加载).如果我在彼此之后执行10个搜索操作,每个搜索操作给出9个结果,则工作过程显示内存使用情况和大小为100 MB的vm大小并且回收...

更新3 切换图像服务网站的使用不会产生更好的结果.所以我认为这个问题是另一回事是公平的.

.net iis-6 application-pool

9
推荐指数
1
解决办法
2万
查看次数

使用Visio自动化逆向工程数据库模型

我们使用自定义工具开发和维护数据库架构.从该工具生成SQL脚本和运行时文件.但是,它没有提供非常好的视觉表现.

最近我一直在使用Visio对架构进行逆向工程.到目前为止,这很有效.但为了能够做到这一点,我需要:

  1. 创建一个空数据库
  2. 执行生成的脚本
  3. 启动visio
  4. 选择逆向工程并选择创建的数据库
  5. 选择所有表格等
  6. 等待一代

我真的想自动化这个过程.第1步和第2步很简单,但我如何自动执行其他步骤.

我一直在寻找一个C#库来创建Visio图表,但它们似乎不适合这个任务.

例如 http://visioautomation.codeplex.com/http://www.graphviz.org/看起来很有希望,但仔细看看它们并不合适.

我试图录制宏,但宏录制器不能与逆向工程工具结合使用.

database automation visio reverse-engineering

6
推荐指数
1
解决办法
4000
查看次数

Service 中 RunAsync 方法的 while 循环中首选什么:使用 IsCancellationRequested 或抛出异常

为什么新 Service Fabric 代码的示例 RunAsync 的结构如下

protected override async Task RunAsync(CancellationToken cancellationToken)
{
  while(true)
  {
    cancellationToken.ThrowIfCancellationRequested();

    await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
  }
} 
Run Code Online (Sandbox Code Playgroud)

而不是这个

protected override async Task RunAsync(CancellationToken cancellationToken)
{
  while(cancellationToken.IsCancellationRequested)
  {
    await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
  }
} 
Run Code Online (Sandbox Code Playgroud)

没有 throw 的版本不是更好吗? 文档指出这两种实现都是正确的:“系统将等待您的任务结束(通过成功完成、取消或故障)”。

azure-service-fabric

5
推荐指数
1
解决办法
1398
查看次数

使用 Roslyn API 编译 .NET Core 应用程序

我正在生成一些动态 C# 并希望将其编译为 .NET Core 应用程序。但是,似乎缺少 deps.json 文件,无法使其实际运行。所以编译本身可以工作,但是运行时dotnet [name of dll]会出现错误:

在代码中我这样做

  CSharpCompilation compilation = CSharpCompilation.Create(assemblyName,
    syntaxTrees: files,
    references: references,
    options: new CSharpCompilationOptions(OutputKind.ConsoleApplication,
      optimizationLevel: OptimizationLevel.Debug
    )
  );

  FileUtility.CreateDirectory(outputDllPath);
  EmitResult result = compilation.Emit(outputDllPath, pdbPath: outputPdbPath);
Run Code Online (Sandbox Code Playgroud)

参考集合包含 Microsoft.NETCore.App 和 netstandard 2.0.0 ref dll,以及其他符合 netstandard2.0 的特定 dll。

这可以正常工作。跑步时我得到:

Unhandled Exception: System.TypeLoadException: Could not load type 'System.Object' from assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
Run Code Online (Sandbox Code Playgroud)

如何为我的编译生成正确的 deps.json 文件?

c# roslyn

5
推荐指数
1
解决办法
2189
查看次数

负载测试期间的 FabricTransientException “无法 ping 任何提供的 Service Fabric 网关端点。”

我们有一个向 Service Fabric 无状态服务广播消息的类。这个无状态服务只有一个分区,但有很多副本。该消息应该发送到系统中的所有副本。因此,我们查询 FabricClient 以获取单个分区以及该分区的所有副本。我们使用标准 HTTP 通信(无状态服务具有带有自托管 OWIN 侦听器的通信侦听器,使用 WebListener/HttpSys)与共享 HttpClient 实例。在负载测试期间,我们在发送消息期间遇到许多错误。请注意,我们在同一应用程序中还有其他服务,它们也在进行通信(WebListener/HttpSys、ServiceProxy 和 ActorProxy)。

我们看到异常的代码是(堆栈跟踪在代码示例下方):

private async Task SendMessageToReplicas(string actionName, string message)
{
  var fabricClient = new FabricClient();
  var eventNotificationHandlerServiceUri = new Uri(ServiceFabricSettings.EventNotificationHandlerServiceName);

  var promises = new List<Task>();
  // There is only one partition of this service, but there are many replica's
  Partition partition = (await fabricClient.QueryManager.GetPartitionListAsync(eventNotificationHandlerServiceUri).ConfigureAwait(false)).First();

  string continuationToken = null;
  do
  {
    var replicas = await fabricClient.QueryManager.GetReplicaListAsync(partition.PartitionInformation.Id, continuationToken).ConfigureAwait(false);
    foreach(Replica replica in replicas)
    {
      promises.Add(SendMessageToReplica(replica, actionName, message));
    }

    continuationToken …
Run Code Online (Sandbox Code Playgroud)

c# azure-service-fabric

5
推荐指数
1
解决办法
1771
查看次数

内容文件未部署在Service Fabric包中

我们希望在服务结构包(配置,元数据)中部署几个静态内容文件.只要这些文件位于包的根目录中,一切正常.但是,如果我们将它们放在子文件夹中,则文件不包含在包中.这是某种错误,这是设计还是需要配置?

更新

似乎问题出在我们自己的自定义部署代码中(我们自己打包并部署到服务结构).只要文件标记为" 复制到输出目录",这确实有效.

azure-service-fabric

4
推荐指数
1
解决办法
1411
查看次数